IOS7学习之路三(UISpriteKit游戏开发SKNode)
ios7新添加了自己的游戏开发框架UISpriteKit ,可以用此做一些2D的小游戏,
今天学习了一下SKNode的知识做一下笔记,以便以后查阅。
1.SKNode继承自UIResponder。
2。
3.SKNode的子类
4.
6.坐标系
创建一个Sk模板的项目很简单,
打开xcode5,新建一个工程,在ios Application下选择SpriteKit Game.。
创建后运行可以看到初始效果。
下面讲解自定义SkNode
删除MyScene.h和MyScene.m文件
创建一个HelloScene文件继承SKScene类 ,源代码(已添加注释)如下:
HelloScene.m
//
// HelloScene.m
// HelloSpriteKit
//
// Created by wildcat on 13-11-17.
// Copyright (c) 2013年 com.wildcat. All rights reserved.
// #import "HelloScene.h" @implementation HelloScene
-(instancetype)initWithSize:(CGSize)size{ self=[super initWithSize:size];
if (self) {
//添加一个标签
SKLabelNode *label=[SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
label.text=@"Hello SpriteKit";
//添加子节点
[self addChild:label];
//设置文本节点到屏幕中间
label.position=CGPointMake(size.width/2.f, size.height/2.f); //实例化第二个节点
SKLabelNode *labelNode2=[SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
labelNode2.text=@"wildcat"; //添加文本
labelNode2.fontColor=[UIColor redColor];//设置颜色
labelNode2.position=label.position;//设置位置
[self addChild:labelNode2];//添加子节点 //分别设置第一个和第二个节点的zPositon
label.zPosition=1;
labelNode2.zPosition=0.7; //打印第一个节点的碰撞体积
NSLog(@"第一个几点的fram:%@",NSStringFromCGRect(label.frame) );
//实例化第一个节点的子节点(SKShapeNode:形状节点,用来描绘路径)
SKShapeNode *shapNode=[SKShapeNode node]; //实例化一个CoreGraphics框架内的标准路径
CGMutablePathRef path=CGPathCreateMutable();
CGPathAddRect(path, 0, CGRectMake(0, 0, 30, 30));//一个30*30的正方形
shapNode.path=path;
//设置节点绘制线的颜色
shapNode.strokeColor=[UIColor greenColor]; //设置形状节点的起始位置position={-130,23}
shapNode.position=CGPointMake(-130.f, 23.f); [label addChild:shapNode];
NSLog(@"第一个节点包括所有子节点的碰撞体积是:%@",NSStringFromCGRect([label calculateAccumulatedFrame])); //设置第一个节点的zRotation(旋转角度)属性,一弧度计算
label.zRotation=1.0f;// 1弧度的旋转,逆时针45度
// //设置第一个的xScale 设置之后碰撞体积也跟着变化
// labelNode2.xScale=1.6; }
return self;
} @end
修改viewController函数中的ViewDidLoad方法:
[super viewDidLoad];
// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = YES;
skView.showsNodeCount = YES;
//新建一个文本节点
HelloScene *scene=[HelloScene sceneWithSize:skView.bounds.size];
[skView presentScene:scene]; //skview弹出节点
运行结果如下:
转载请标注本文转自:http://blog.csdn.net/wildcatlele
ppt截图来自:点击打开链接
IOS7学习之路三(UISpriteKit游戏开发SKNode)的更多相关文章
- 学习之路三十九:新手学习 - Windows API
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
- ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS
react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...
- IOS学习之路五(SpriteKit 开发飞机大战小游戏一)
参考SpriteKit 创建游戏的教程今天自己动手做了一下,现在记录一下自己怎么做的,今天之做了第一步,一共有三个部分. 第一步,项目搭建. 项目所用图片资源:点击打开链接 1.在Xcode打开之后, ...
- 【4】【MOOC】Python游戏开发入门-北京理工大学【第三部分-游戏开发之机制(色彩与绘图)】
学习地址链接:http://www.icourse163.org/course/0809BIT021E-1001873001?utm_campaign=share&utm_medium=and ...
- 【3】【MOOC】Python游戏开发入门-北京理工大学【第三部分-游戏开发之机制(事件处理机制)】
学习地址链接:http://www.icourse163.org/course/0809BIT021E-1001873001?utm_campaign=share&utm_medium=and ...
- 交互原型设计软件axure rp学习之路(三)
(三)Axure rp元件的触发事件 l OnClick(点击时): 鼠标点击事件,除了动态面板的所有的其他元件的点击时触发.比如点击按钮. l OnMouseEnter(鼠标移入时): 鼠标进入 ...
- Groovy学习:第三章 Groovy开发环境
本章将继续深入Groovy语言,首先学习Groovy脚本,包括从命令行编译和运行Groovy脚本,Groovy Shell,和Groovy Console.你将学会使用Groovy语言来建立域对象.控 ...
- zigbee学习之路(三):按键的控制
一.前言 通过前一次的实验,相信大家都已经对cc2530程序的编写有了一定的认识,这次我们来操作和实验的是cc2530上的按键模块. 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出 ...
随机推荐
- 【分享】小工具大智慧之Sql执行工具
原文:[分享]小工具大智慧之Sql执行工具 工具概况 情况是这样的,以前我们公司有很多Sql用于完成一些很不起眼但又不得不完成的业务,出于方便就直接在Sql查询分析器里执行,按理说应该写一些专门的工具 ...
- 题目1380:lucky number
转载请注明文本链接 http://blog.csdn.net/yangnanhai93/article/details/40441709 题目链接地址:http://ac.jobdu.com/prob ...
- Objective-C中的Category(分类)
Objective-C中的Category(分类) 1 Category概念:动态的为已经存在的类加入新的行为(方法) 2 Category(分类)创建的方法 (1)通过Xcode生成分类 (2)能够 ...
- HDU 5068 Harry And Math Teacher
主题链接~~> 做题情绪:的非常高深,有种高大上的感觉. 解题思路: 两层之间的联通能够看成是一个矩阵 代表上下两层都能够联通,,代表下层第1个门与上层第一个门不联通,以此类推联通就能够用矩阵 ...
- Yii Framework2.0开发教程(10)配合mysql数据库实现用户登录
1.首先在mysql创建一个存用户的表格 create table test_user ( user_id bigint(20) unsigned not null auto_increment co ...
- MySQL存储引擎差异化实验
本篇把MySQL最常用的存储引擎给大家做一个介绍,然后通过插入.修改和并发实验来了解和验证一下它们之间的一些差异. 一.MySQL存储引擎简介 存储引擎在MySQL结构里占据核心的位置,是上层抽象接口 ...
- 在C#编程中玩转枚举,分享我的EnumHelper。
在C#编程中玩转枚举,分享我的EnumHelper. 在软件开发过程中,我们经常会为特定的场景下的特定数据定义逻辑意义.比如在用户表中,我们可能会有一个用户状态字段,该字段为整形.如果该字段的值为1则 ...
- Serialization performance analysis
Serialization performance analysis http://www.skyscanner.net/blogs/serialization-performance-analysi ...
- Objective-C系列
我的Objective-C系列文章和坚持写博客的感想 做iOS开发有一段时间了,也有自己上线的App产品,也在坚持着发表技术博客总结自己所学的东西.在写博客的时候虽然博文中不免有错别字,但每句话都 ...
- C#中调用Outlook API 发起会议
原文:C#中调用Outlook API 发起会议 在我上一篇博文中曾提到了 SharePoint 中调用传出电子邮件中的邮件服务器及地址发送邮件 但是,里面的方法只能用于发送普通电子邮件.如果要发起会 ...