本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址

https://www.baiydu.com

这次包括之后讲的spritekit 我都会围绕一个案例来说,这个案例就是一个简单的2d飞机大战游戏,今天这里我讲创建敌对精灵,就是敌对飞机,敌对飞机不停的被刷新到屏幕上.....当然这里涉及到的类其实还是,精灵,和材质两个类,这两个类前两篇的案例中已经出现过,使用方法都一样,主要看逻辑,我这里主要是实现每间隔一段时间屏幕就刷新一个敌对飞机。飞机从屏幕高度为起点往下移动,当potion移动到0时将敌对飞机移出。

 /*这个方法是spritekit 的场景自带的,每过一秒就会被调用*/
-(void)update:(CFTimeInterval)currentTime {
[self BackMove:]; [self initEnemySprite];//本次增加的创建敌对飞机的方法 }
/*创建敌对飞机*/
-(void)initEnemySprite
{
/*此方法是放在update里面的所以是每秒执行一次,下面三个变量就是控制飞机刷新速度的,如果不控制,屏幕就会每秒都刷新一个飞机出来,那么不一会屏幕就会爆满, 这里每35秒刷新一架小型地址每400秒刷新一架中型飞机, 每700秒刷行一架大飞机*/
_smallPlaneTime++;
_mediumPlaneTime++;
_bigPlaneTime++; //int RadomNumber= (arc4random() % 100) + 0;
int SpriteX=DEVICE_Width;
/*随机精灵在x轴的位置*/
int x = (arc4random() % (SpriteX-)) + ; int speed = ; if (_smallPlaneTime>) {
UIImage *farTextureImageThree=[UIImage imageNamed:@"MemberTwo"];
SKTexture *farTextureThree = [SKTexture textureWithImage:farTextureImageThree]; SKSpriteNode *foePlane = [SKSpriteNode spriteNodeWithTexture: farTextureThree size:CGSizeMake(farTextureThree.size.width/2.5, farTextureThree.size.height/2.5)];
//增加敌对飞机受动力感应的范围
foePlane.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:foePlane.size];
/*飞机向下移动速度*/
speed= (arc4random() % ) + ; foePlane.position = CGPointMake(x, self.size.height);
foePlane.zPosition=;
/*下面三个属性是设置敌对飞机的重力检测属性,之后它们都会用到,比如之后用户操作的飞机发射子弹打在它们上面,下面这属性就起作用了*/
foePlane.physicsBody.categoryBitMask = SKRoleCategoryFoePlane;
foePlane.physicsBody.collisionBitMask = SKRoleCategoryBullet;
foePlane.physicsBody.contactTestBitMask = SKRoleCategoryBullet;
[self addChild:foePlane];
/*当精灵的y坐标为0时将精灵从父节点移出*/
[foePlane runAction:[SKAction sequence:@[[SKAction moveToY: duration:speed],[SKAction removeFromParent]]] completion:^{
[foePlane removeFromParent];
}];
_smallPlaneTime=; } if (_mediumPlaneTime>) { UIImage *farTextureImageThree=[UIImage imageNamed:@"Teamer"];
SKTexture *farTextureThree = [SKTexture textureWithImage:farTextureImageThree];
SKSpriteNode *foePlane = [SKSpriteNode spriteNodeWithTexture: farTextureThree size:CGSizeMake(farTextureThree.size.width/2.5, farTextureThree.size.height/2.5)];
//增加敌对飞机受动力感应的范围
foePlane.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:foePlane.size];
/*飞机向下移动速度*/
speed = (arc4random() % ) + ; foePlane.position = CGPointMake(x, self.size.height); foePlane.zPosition=;
/*下面三个属性是设置敌对飞机的重力检测属性,之后它们都会用到,比如之后用户操作的飞机发射子弹打在它们上面,下面这属性就起作用了*/
foePlane.physicsBody.categoryBitMask = SKRoleCategoryFoePlane;
foePlane.physicsBody.collisionBitMask = SKRoleCategoryBullet;
foePlane.physicsBody.contactTestBitMask = SKRoleCategoryBullet;
[self addChild:foePlane];
/*当精灵的y坐标为0时将精灵从父节点移出*/
[foePlane runAction:[SKAction sequence:@[[SKAction moveToY: duration:speed],[SKAction removeFromParent]]] completion:^{
[foePlane removeFromParent];
}];
_mediumPlaneTime=; } if (_bigPlaneTime>) { UIImage *farTextureImageThree=[UIImage imageNamed:@"Unknown"];
SKTexture *farTextureThree = [SKTexture textureWithImage:farTextureImageThree]; SKSpriteNode *foePlane = [SKSpriteNode spriteNodeWithTexture: farTextureThree size:CGSizeMake(farTextureThree.size.width/2.5, farTextureThree.size.height/2.5)]; //增加敌对飞机受动力感应的范围
foePlane.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:foePlane.size]; /*飞机向下移动速度*/
speed = (arc4random() % ) + ;
foePlane.position = CGPointMake(x, self.size.height);
foePlane.zPosition=;
/*下面三个属性是设置敌对飞机的重力检测属性,之后它们都会用到,比如之后用户操作的飞机发射子弹打在它们上面,下面这属性就起作用了*/
foePlane.physicsBody.categoryBitMask = SKRoleCategoryFoePlane;
foePlane.physicsBody.collisionBitMask = SKRoleCategoryBullet;
foePlane.physicsBody.contactTestBitMask = SKRoleCategoryBullet;
[self addChild:foePlane];
/*当精灵的y坐标为0时将精灵从父节点移出*/
[foePlane runAction:[SKAction sequence:@[[SKAction moveToY: duration:speed],[SKAction removeFromParent]]] completion:^{
[foePlane removeFromParent];
}];
_bigPlaneTime=; } }

其实这里的精灵和材质类我都是封装了类的,这里为了显示代码,所以直接把封装类的代码写一起了。开发时不建议这样做。

下面是下载地址:http://download.csdn.net/detail/qq_35826634/9599204  有兴趣的朋友可以去下来看看

本人创业做的一款androidApp, 下载量已经有2000多万,各种当前热门的网络手机奖励红包全部集成,另外还有热门电影和淘宝高额优惠券!很适合各类型的用户。

 

IOS 2D游戏开发框架 SpriteKit-->续(创建敌对精灵)的更多相关文章

  1. IOS 2D游戏开发框架 SpriteKit

    最近发现Xcode自带的2D游戏开发框架SpriteKit可以直接引入到APP中进行混合开发,这就是说可以开发出既带业务应用又带游戏的苹果APP,咋怎么觉得这是一个自己的小发现....呵呵....., ...

  2. IOS 2D游戏开发框架 SpriteKit-->续(创建用户角色精灵--原创)

    一.主要实现   今天spritekit实现创建玩家角色精灵(SKSpriteNode *), 增加角色精灵的手势操作,这里增加的手势计算方法与objective-c中是不一样的,因为objectiv ...

  3. IOS 2D游戏开发框架 SpriteKit-->续(完善角色功能)

    一.说明       今天给角色精灵增加了子弹发射功能,增加了子弹与敌对精灵的碰撞检测,当角色精灵子弹与敌对精灵碰撞后,它们都会从屏幕上消失. 二.场景层SKScene的修改 1. 在初始化场景层的方 ...

  4. IOS 2D游戏开发框架 SpriteKit-->续(postion,锚点,游戏滚动场景)

    一. Postion 这里的postion和app开发中的layer.postion是一样的,postion的值代表该视图在父节点中的相对位置, 比如一个试图的父节点是self.view, 这里我们想 ...

  5. Unity3d Platformer Pro 2D游戏开发框架使用教程

    前言 Platformer Pro框架是Unity3d AssetStore上一个非常强大和受欢迎的2d游戏开发框架,这个教程的大部分翻译于官方文档,一部分是工作总结,还有一部分是视频教程文档化.这个 ...

  6. 初识phaser框架——开源的HTML5 2D游戏开发框架

    背景: 在网上看到,65行实现flappy bird,感到很好奇.原来是使用开源的2D游戏框架 phaser开发的. 什么是phaser2D游戏开发框架呢? 借鉴与网上的资料: 1.    Phase ...

  7. iOS开发实战-基于SpriteKit的FlappyBird小游戏

    写在前面 最近一直在忙自己的维P恩的事情 公司项目也是一团乱 于是...随手找了个游戏项目改了改就上线了,就当充数了. SpriteKit简介 SpriteKit是iOS 7之后苹果推出的2D游戏框架 ...

  8. Unity3D 创建一个简单的2D游戏

    开始研究Unity3d 中的2D游戏. 首先创建出一个项目: 然后创建出一个场景: 然后添加一个背景: 然后创建一个主人公对象: 可以是自己做的素材,也可以是用unity裁剪的素材, 下面贴出裁剪素材 ...

  9. CosmosEngine - Unity3D /2D 轻量级游戏开发框架

    CosmosEngine https://github.com/mr-kelly/CosmosEngine 快速入门 简介 特性 约定 整体架构图 使用经验 工作流 未来功能 快速入门 1.将NGUI ...

随机推荐

  1. cesium自定义气泡窗口infoWindow

    一.自定义气泡窗口与cesium默认窗口效果对比: 1.cesium点击弹出气泡窗口显示的位置固定在地图的右上角,默认效果: 2.对于习惯arcgis或者openlayer气泡窗口样式的giser来说 ...

  2. Dynamics CRM 2015-Data Encryption激活报错

    在CRM的日常开发中,Data Encryption经常是不得不开启的一个功能.但是有时,我们可能遇到一种情况,Organization导入之后,查看Data Encryption是已激活的状态,但是 ...

  3. 编译器开发系列--Ocelot语言6.静态类型检查

    关于"静态类型检查",想必使用C 或Java 的各位应该非常熟悉了.在此过程中将检查表达式的类型,发现类型不正确的操作时就会报错.例如结构体之间无法用+ 进行加法运算,指针和数值之 ...

  4. windows 7(32/64位)GHO安装指南(系统安装篇)~重点哦!!~~~~

    经过了前三篇的铺垫,我们终于来到了最重要的部分~~如果没看过前几篇的小伙伴们,可以出门右转~~用十几分钟回顾一下~~然后在看这篇会感觉不一样的~~~~ 下面让我们来正式开始吧 我们进入大白菜的桌面是酱 ...

  5. 【C#】获取网页内容及HTML解析器HtmlAgilityPack的使用

    最近经常需要下载一些东西,而这个下载地址又会经过层层跳转,每个页面上都有很多广告,烦不胜烦,所以做了一个一键获得最终下载地址的小工具.使用C#,来获取网页内容,然后通过HtmlAgilityPack获 ...

  6. java根据html生成摘要

    转自:http://java.freesion.com/article/48772295755/ 开发一个系统,需要用到这个,根据html生成你指定多少位的摘要 package com.chendao ...

  7. Web 前端攻防(2014版)

    在百度 FEX 团队时写的.有次让我写点前端开发中注意的安全规范,结果写着写着就跑题了,写了一堆纯前端实现的攻击方式...当然还有防范措施. 文章就懒得粘过来了~ 直接贴个地址算了:) http:// ...

  8. ValueInjecter----最好用的OOM(以微信消息转对象举例)

    使用数据实体的好处我这里就不多说了,但大家享受这些好处的时候,难免也对那些琐碎的赋值代码感到厌烦,基于此,我认为掌握一个oom的使用,还是很有必要的. 这种类型的工具有很多,比如automapper, ...

  9. Linux网络编程-tcp缓存设置

    最近发现服务的逻辑完成时间很短,但是上游接收到的时间比较长,所以就怀疑是底层数据的序列化/反序列化.读写.传输有问题,然后怀疑是TCP的读写缓存是不是设置太小.现在就记录下TCP缓存的各配置项以及缓存 ...

  10. 学会使用Spring注解

      概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 ...