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

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. 文件随机读写专用类——RandomAccessFile

     RandomAccessFile类可以随机读取文件,但是在测试中并不好用;File类可以测试文件存不存在,不存在可以创建文件;FileWriter类可以对文件进行重写或者追加内容;FileReade ...

  2. NGINX引入线程池 性能提升9倍

    1. 引言 正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求.为 ...

  3. 去IOE的一点反对意见以及其他

    某天在机场听见两老板在聊天,说到他们目前销售的报表老跟不上的问题,说要请一个人,专门合并和分析一些发过来的excel表格,我真想冲上去说,老板,你需要的是一个信息处理的系统,你需要咨询么.回来一直耿耿 ...

  4. SQL Server事务、视图和索引

    废话不多说,直接上干货 14:13:23 事务 概括:事务是一种机制,一个操作序列,包含一组数据库操作命令,并且把所有的命令作为一个整体一起 向系统提交或撤销操作 请求. 事务的特性:   1.原子性 ...

  5. MySQL:常见使用问题

    内容 1.Linux 上安装 MySQL 2.单机上安装多实例 3.不知root密码情况下,修改root密码 1.Linux 上安装MySQL 安装步骤: 1)解压 tar.gz文件 -linux-g ...

  6. phpstorm 配置 xdebug调试工具

    前言   php是脚本型程序 每次出错都要手动exit断点程序不是很方便 哪里有需求哪里就有生产,Xdebug可以实现对php的断点调试.下面将我个人的安装经历分享给大家. 运行环境 windows ...

  7. closure

    什么是闭包?百度的答案: 闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)."闭包&quo ...

  8. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  9. 警惕!高版本VS发布时预编译导致Mono中Razor找不到视图

    早前一段时间,一位朋友在Q群里面找到我,说它按照<Linux.NET学习手记>的操作,把一个ASP.NET MVC 4.0的项目部署到Mono之后出现Razor无法找到视图的现象.当时费了 ...

  10. docker创建私有仓库

    由于网速和大中华局域网效果,使得我们在DockerHub下载镜像的速度很慢,甚至一些国内的镜像仓库,也感觉速度不是很好.所以,很有必要在本地或者一个我们访问很快速的地方(自己的云服务器)搭建一套镜像仓 ...