IOS 2D游戏开发框架 SpriteKit-->续(创建用户角色精灵--原创)
本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址
https://www.baiydu.com
一、主要实现
今天spritekit实现创建玩家角色精灵(SKSpriteNode *), 增加角色精灵的手势操作,这里增加的手势计算方法与objective-c中是不一样的,因为objective-c使用的坐标系与spritekit使用的坐标系不是一样的,后面还增加了精灵的碰撞检查代码。
二、 SKSpriteNode手势
SKSpriteNode类自带5个手势监测的方法,
// 手指按下的时候调用
1、 -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event // 手指移动的时候调用 2、 -(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
// 手指抬起的时候调用
3、- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
取消(非正常离开屏幕,意外中断事件)
4、 -(void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
3D Touch相关方法,当前触摸对象估计的触摸特性,返回值是UITouchPropertyie、
5、 -(void)touchesEstimatedPropertiesUpdated:(NSSet *)touches
6、上面5个方法中用得最多的是 1、2、3,下面我们要操作的角色精灵也是用到这三个手势,实现的思路→当用户点击屏幕时进入到1手势,判断点击的坐标点是不是在角色精灵精灵上,如果是才能执行2手势,代码中用了一个int变量纪录,如果点击到了角色精灵int=1,int=1时2手势才能执行,当用户手抬起时,将会执行手势3,说明手势结束,结束后我们将int=1设置为=0。
二、 代码
1.场景层初始化中增加创建角色精灵的代码:SKSpriteNode * FirendPlane
UIImage *RolePlaneImage=[UIImage imageNamed:@"AttackPlane"];
SKTexture *RolePlaneImageTextture = [SKTexture textureWithImage:RolePlaneImage];
FirendPlane=[SKSpriteNode spriteNodeWithTexture:RolePlaneImageTextture size:CGSizeMake(DEVICE_Width*0.25, DEVICE_Width*0.25)];
FirendPlane.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:FirendPlane.size];
/*增加碰撞监测代码*/
FirendPlane.physicsBody.categoryBitMask = SKRoleCategoryFoePlane;
FirendPlane.zPosition=;
FirendPlane.position=CGPointMake(self.frame.size.width/, );
[self addChild:FirendPlane];
2.增加手势
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
UITouch *touctObj = [touches anyObject]; CGPoint location=[touctObj locationInNode:self]; CGFloat CurrentTagAreaX=FirendPlane.position.x-FirendPlane.size.width/; CGFloat CurrentTagAreaY=FirendPlane.position.y-FirendPlane.size.height/;
if (location.x>=CurrentTagAreaX &&location.x<=FirendPlane.position.x+(FirendPlane.size.width/) &&
location.y>=CurrentTagAreaY &&location.y<=FirendPlane.position.y+(FirendPlane.size.height/)) { IsOrNoTachMyPlane=;
} } - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
IsOrNoTachMyPlane=; } -(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
if (IsOrNoTachMyPlane>) {
UITouch *touctObj = [touches anyObject];
CGPoint location=[touctObj locationInNode:self]; if (location.x >= self.size.width - (FirendPlane.size.width / )) { location.x = self.size.width - (FirendPlane.size.width / ); }else if (location.x <= (FirendPlane.size.width / )) { location.x = FirendPlane.position.x; } if (location.y >= self.size.height - (FirendPlane.size.height / )) { location.y = self.size.height - (FirendPlane.size.height / ); }else if (location.y <= (FirendPlane.size.height / )) { location.y = FirendPlane.position.y; } SKAction *action = [SKAction moveTo:CGPointMake(location.x, location.y) duration:]; [FirendPlane runAction:action];
}
二、 下载地址
http://download.csdn.net/detail/liaohang1987x/9610880
本人创业做的一款androidApp, 下载量已经有2000多万,各种当前热门的网络手机奖励红包全部集成,另外还有热门电影和淘宝高额优惠券!很适合各类型的用户。

IOS 2D游戏开发框架 SpriteKit-->续(创建用户角色精灵--原创)的更多相关文章
- IOS 2D游戏开发框架 SpriteKit
最近发现Xcode自带的2D游戏开发框架SpriteKit可以直接引入到APP中进行混合开发,这就是说可以开发出既带业务应用又带游戏的苹果APP,咋怎么觉得这是一个自己的小发现....呵呵....., ...
- IOS 2D游戏开发框架 SpriteKit-->续(完善角色功能)
一.说明 今天给角色精灵增加了子弹发射功能,增加了子弹与敌对精灵的碰撞检测,当角色精灵子弹与敌对精灵碰撞后,它们都会从屏幕上消失. 二.场景层SKScene的修改 1. 在初始化场景层的方 ...
- IOS 2D游戏开发框架 SpriteKit-->续(创建敌对精灵)
这次包括之后讲的spritekit 我都会围绕一个案例来说,这个案例就是一个简单的2d飞机大战游戏,今天这里我讲创建敌对精灵,就是敌对飞机,敌对飞机不停的被刷新到屏幕上.....当然这里涉及到的类其实 ...
- IOS 2D游戏开发框架 SpriteKit-->续(postion,锚点,游戏滚动场景)
一. Postion 这里的postion和app开发中的layer.postion是一样的,postion的值代表该视图在父节点中的相对位置, 比如一个试图的父节点是self.view, 这里我们想 ...
- Unity3d Platformer Pro 2D游戏开发框架使用教程
前言 Platformer Pro框架是Unity3d AssetStore上一个非常强大和受欢迎的2d游戏开发框架,这个教程的大部分翻译于官方文档,一部分是工作总结,还有一部分是视频教程文档化.这个 ...
- 初识phaser框架——开源的HTML5 2D游戏开发框架
背景: 在网上看到,65行实现flappy bird,感到很好奇.原来是使用开源的2D游戏框架 phaser开发的. 什么是phaser2D游戏开发框架呢? 借鉴与网上的资料: 1. Phase ...
- Oracle创建用户角色
正在维护一个CS结构的应用,每次创建应用的用户时都需要创建对应的数据库schema,并且需要赋予其相应的对象权限和角色.操作很不方便,所以专门创建了一个角色,过程如下: 1.创建角色 SQL> ...
- sql脚本创建用户角色权限表
/******************************************/ /* 名称:权限管理 */ /* 编写日期:2010.5.20 */ /* 开发者:dangqinghua * ...
- 转 在SQL Server中创建用户角色及授权(使用SQL语句)
目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...
随机推荐
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- FineReport关于tomcat集群部署的方案
多台服务器集群后,配置权限.数据连接.模板.定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器. 针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件.finedb/ ...
- 项目自动化建构工具gradle 入门1——输出helloWorld
先来一个简单的例子,4个步骤: 1.进入D:\work\gradle\java 目录 ,您电脑没这目录? 那辛苦自己一级一级建立起来吧 新建文件build.gradle,文件内容是: apply p ...
- Web 前端攻防(2014版)
在百度 FEX 团队时写的.有次让我写点前端开发中注意的安全规范,结果写着写着就跑题了,写了一堆纯前端实现的攻击方式...当然还有防范措施. 文章就懒得粘过来了~ 直接贴个地址算了:) http:// ...
- 《高性能javascript》一书要点和延伸(下)
第六章 快速响应的用户界面 本章开篇介绍了浏览器UI线程的概念,我也突然想到一个小例子,这是写css3动画的朋友都经常会碰到的一个问题: <head> <meta charset=& ...
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
- NodeJs 开发微信公众号(三)微信事件交互
微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成.比如说自定义菜单功能,必须通过发送post请求的方式生成.本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么 ...
- EasyPR--开发详解(6)SVM开发详解
在前面的几篇文章中,我们介绍了EasyPR中车牌定位模块的相关内容.本文开始分析车牌定位模块后续步骤的车牌判断模块.车牌判断模块是EasyPR中的基于机器学习模型的一个模块,这个模型就是作者前文中从机 ...
- ASP.NET Web API 路由对象介绍
ASP.NET Web API 路由对象介绍 前言 在ASP.NET.ASP.NET MVC和ASP.NET Web API这些框架中都会发现有路由的身影,它们的原理都差不多,只不过在不同的环境下作了 ...
- WCF中,通过C#代码或App.config配置文件创建ServiceHost类
C# static void Main(string[] args) { //创建宿主的基地址 Uri baseAddress = new Uri("http://localhost:808 ...