- 浏览: 1101200 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (349)
- javascript (28)
- objective-c&cocos2d (46)
- 开发备忘及常用java代码 (46)
- core java7学习笔记 (13)
- Mina (7)
- HTML5 (13)
- 系统集成项目管理工程师学习笔记 (10)
- 数据库系统原理学习笔记 (11)
- C++学习笔记 (10)
- C语言学习笔记 (5)
- 数据结构学习笔记 (4)
- 计算机网络原理学习笔记 (3)
- 计算机组成原理学习笔记 (2)
- 软件工程学习笔记 (6)
- 开发工具 (15)
- OSGI学习 (1)
- 学习笔记 (19)
- oracle (3)
- java tv (1)
- web server (5)
- javafx (1)
- 随笔 (8)
- 梦舞集 (4)
- 工作流 (3)
- 程序错误记录 (6)
- Windows (2)
- Linux (4)
- Git (1)
- 企业管理 (2)
- android (1)
- JVM (17)
- box2dweb (1)
- 操作系统学习笔记 (6)
- 英语学习 (1)
- Windows 8 应用商店 (1)
- Go语言 (1)
- docker (1)
- visualVM源码学习 (0)
- MariaDB (0)
- JAVA7 (2)
- 面向对象存储 (0)
- Hibernate (14)
- Spring (3)
- 项目构建 (0)
- 读源码学JAVA (0)
- mybatis (1)
- spring mvc (2)
- Javassist (0)
最新评论
-
白天看黑夜:
Apache Mina Server 2.0 中文参考手册(带 ...
Mina学习笔记二_基础 -
yjph83:
兄弟,你这个解决方案是什么什么啊?我现在遇到个问题跟你类似的! ...
Tomcat 8.0.11 移动端访问报400错误问题 -
comedsh:
你好,我也想为开源的做点事情,想让 tomcat-redis- ...
利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法 -
bsr1983:
这个应该是浏览器内部设置的,你可以在Android上试一下别的 ...
javascript学习笔记八 -
787250527:
bsr1983 写道该值是浏览器内部的一个变量,只读的,不可修 ...
javascript学习笔记八
第4章 你的第一个游戏
4.1 按部就班地创建项目
任何非源代码文件都被当做资源,无论是图像文件、声音文件、文本文件还是plist文件。分组并不是必须的,但如果坚持对同类文件进行分组,那么这将为理清项目带来很大便利。
4.2 添加Player Sprite
注意:iOS游戏首选的图像文件格式是PNG(Portable Network Graphic,便携式网络图像),这是一种压缩文件格式,然而与JPG文件不同的是,PNG采用了无损压缩,保留了原始图像所有像素。你也可以保存不经压缩的JPG文件,不过对于同一个图像,PNG文件的大小明显要比未经压缩的JPG文件小。但是这只会影响应用的大小,而不会影响纹理对内存(RAM)的使用。
注意:
记住,在iOS设备上文件名是区分大小写的。如果你视图加载Alien.png或ALIEN.PNG,在模拟器上会成功加载文件而在iOS设备上则不会,因为文件真正的名字是alien.png,字母全部小写。这就是坚持统一的命名约定——例如强制所有文件名使用小写字母——的意义所在。
注意:无论如何都要尽量避免使用固定的位置值。如果你只是把玩家为之设为(160,32),此时你就做了两个本该避免的假定。第一,假定了屏幕的宽度为320像素,但并不是每个iOS设备都是这样的。第二,你假定了图像的高度是64像素,然而那也是可能会改变的。一旦你开始像这样做假定,整个项目过程中你就会逐渐形成这样的习惯。
用很多代码来定位对象,但长远来看这样制作会节约大量时间。可以将项目部署到不同的设备,也可以使用不同尺寸的图像,无论如何项目都会正常运行。
4.3 加速剂输入
与其他编程语言(如java、C++或C#等)不同,像player.position.x+=value这样的语句对Objective-C中的属性是不起作用的。问题出在Objective-C中属性的工作方式以及Objective-C所基于的C语言的赋值机制。
player.position.x语句实际上是调用了position的getter方法[player position],这意味着你实际上获得了一个临时的position值,并试图改变这个临时的CGPoint对象的x成员变量。但之后这个临时的CGPoint对象会被丢弃。于是position的setter方法[player setPosition]就不会自动被调用了。所以只能直接对player.position进行赋值。
4.4 首次测试运行
如果尚未在Xcode中为这个项目安装你的开发授权,将会产生CodeSign错误。在iOS设备上运行程序时需要代码签名证书。
4.5 玩家速度
实现加速与减速概念不在于直接修改玩家的位置值,而是使用单独的CGPoint变量作为速度矢量。每次接收到一个加速计事件时,速度矢量就加上从加速计得到的输入。当然,这意味着我们得把速度限制在一个任意的最大值内,否则减起速来就要花点时间了。不管有没有接收到加速计的输入,在每一帧都把速度加到玩家位置上。
注意:为什么不使用动作来移动玩家精灵呢?无论何时你需要频繁地——如,每秒数次——改变对象的速度或方向,使用move动作都不是一个好的选择。动作适用于相对使用周期较长的对象,所以频繁创建新对象在分配释放内存上增加了额外开销,这会使游戏性能大幅下降。
更糟糕的是,如果不为动作留出一点时间,动作是不会执行的。这就是在每帧添加新动作来替换前一个却没有任何效果的原因。
注意:imageWidthHalved的是用contentSize的宽乘以0.5而不是除以2得到的。这是个有意的选择,而且两者结果相同,因为任何除法都可以被改写成乘法的形式。
update方法在每一帧都会被调用,而在每帧都调用的代码应该以最高速度运行,并由于iOS设备的ARM CPU不支持硬件上的除法运算,因此乘法运算通常要更快一些。
4.6 添加障碍物
获取图像尺寸最简单的方法就是创建一个临时的CCSprite对象。
将初始化精灵和配置精灵分开处理的原因在于:游戏总会结束,之后游戏将被重置。最为高效的做法就是将所有游戏对象移动到它们的初始位置。然而,一旦游戏趋于复杂,这种做法将不具备可行性。最终,最简单的做法就是以玩家为代价重新加载全部场景。
提示:
如果不是绝对必要的话,为了节约CPU资源,最好不要在for或其他循环语句中使用方法调用作为循环条件。
4.7 碰撞检测
4.8 得分标签
CCLabel只在频繁更改其字符串时才会运行缓慢。如果一次创建一个CCLable对象并永不更改,那么它使用起来就会和相同尺寸的CCSprite对象一样快。
4.9 CCBitmapFontAtlas与Hiero简介
注意:在游戏中使用位图字体是个很棒的选择,但位图字体也有很大的不足之处。任意位图字体的大小都是固定的。如果需要同一字体的不同字号,可以缩放CCBitmapFontAtlas——但这样会损失图像质量。你还可以另外创建一个与原来字体大小不同的字体文件,但是这样会使用更多内存,因为即使只有字体大小不同,每个位图字体也都有其特有的纹理。
注意:如果使用CCBitmapFontAtlas显示字符,当某些字符在.fnt文件中无效时,将会跳过这些字符而不显示它们。
4.10 添加音频
cocos2d中播放音频文件最好,同事也是最简单的方法是使用SimpleAudioEngine。音频文件支持并不属于cocos2d的组成部分;它是CocosDenshion的主要部分,与物理引擎一样,同属于cocos2d的第三方插件。因此你必须在CocosDenshion音频功能时添加相应的文件。
至于音乐,MP3文件是首选。注意,一次只能在后台播放一个MP3文件。
4.11 移植到iPad
因为所有的位置坐标都考虑到了屏幕的尺寸,所以将游戏放大到iPad的大屏幕上运行应该不会有问题。
4.12 本章小结
<!--EndFragment-->
发表评论
-
[转]解决 Xcode 删除文件后 missing file 警告
2014-03-19 18:19 1085转自:http://www.oschina.net/ques ... -
CocoStudio简介
2014-03-05 19:19 1375一、概述 1.1.功能简介 CocoS ... -
xcode5预览版下载地址
2013-06-16 09:56 21791.xcode5预览版下载地址 http://adcdo ... -
解决提交应用到AppStore时,提示UUID及UIDevice错误
2013-06-04 03:34 22201.如果使用了Admob,更新到最新版本6.4.2,删除Add ... -
解决Could not instantiate class named NSLayoutConstraint
2013-02-17 10:22 1383点击xib或storyboard文件,在右边的 inspect ... -
objective-c的arc项目中使用不支持arc的依赖库时编译错误的解决
2013-02-06 14:04 1125在Target->build phases->Co ... -
xcode4.6下载地址
2013-02-04 12:08 3056http://adcdownload.apple.com/De ... -
Mac上的DMG与ISO互转
2013-01-14 14:59 11011.把DMG转为ISO hdiutil convert /p ... -
设置ios中DatePicker的日期为中文格式
2012-12-18 18:12 71911.在模拟器中的“设置”-“通用”-“多语言环境”-“语言”设 ... -
Xcode 错误- Could not launch app - No such file or directory Error.
2012-12-14 11:50 1787通常发生在联机调试过程中,新旧工程交替测试 解决方 ... -
UIPickerView控件中自定义显示的字体大小及样式
2012-12-14 00:21 17745通过覆盖如下方法实现 - (UIView *)pickerV ... -
Flurry analytics SDK集成步骤及功能简介
2012-12-13 11:48 15315Flurry analytics SDK集成步骤及功能 ... -
Xcode4中显示“Line Numbers”行号
2012-12-11 10:46 1051Xcode4中显示“Line Numbers”行号 1 ... -
ios代码备忘
2012-12-09 00:23 14091.自定义导航栏返回按钮 self.navigationIt ... -
iOS OpenSource Library Collection
2012-12-07 17:45 1318转自:http://www.cppblog.com/inkcp ... -
ios内置付费IAP校验
2012-12-07 15:50 1535参考链接:http://developer.apple.com ... -
ios应用中集成多盟广告墙
2012-12-06 16:59 34961.下载广告墙SDK最新版 ... -
ios 导航栏、工具栏、tab栏图标大小
2012-12-06 16:50 11177工具栏和导航栏上的图标尺寸应如下所示: 对于iPhoe和iP ... -
【转】Google Admob 广告最佳做法
2012-11-13 15:40 6527转自:https://developers.google.co ... -
【转】Google AdMob 广告 iOS 初级指南
2012-11-13 15:37 1472转自:https://developers.google.co ...
相关推荐
第1章 开始前的准备工作 1 第2章 你的第一款iPhone游戏:垂直射击游戏 38 第3章 Cocos2D核心类 69 第4章 Cocos2D中的动作、特效与动画 152 第5章 Cocos2D中的文本渲染系统 229 共19章
第一部分:基础篇[1] 第一章主要是手机游戏概述,包括游戏概述、手机游戏类型和开发平台的分析; 第二章介绍手机游戏的策划,包括分析玩家需求,编写策划文案,游戏原型的实现。 第三章介绍C、C++编程基础,对于...
资源名称:Cocos2d-x手机游戏开发必备C 语言基础教程内容:课时1 课程介绍课时2 1.C 概述课时3 2.1第一个程序编写过程课时4 2.2解释说明第一个C 程序课时5 2.3使用Visual Studio运行并调试课时6 3.1.1数据类型、...
第1章-介绍cocos2d 第2章-开始学习 第3章-基础知识 第4章-你的第一个游戏 第4章-你的第一个游戏(修正错误) 第5章-游戏构成要素 第6章-深入了解精灵(Sprite) 第7章-横向滚屏射击游戏 第8章-完成滚屏射击游戏-1 第9章-...
cocos2d-x手机游戏开发,是一本介绍cocos2d游戏引擎,已经如何扩平台开发手机游戏的书。由于上传大小的限制,分成6个压缩包,不好意思。第6卷。
(译)如何使用cocos2d来制作一个塔防游戏:第一部分.pdf cocos2d 2.0 添加遮罩.pdf iOS Code Signing解惑.pdf iPhone上面的现实增强(Augmented Reality)入门教程.pdf OpenGL ES2.0 – Iphone开发指引.pdf ...
解压,放在一个你容易找到的位置。但是最好别是桌面。(我是放在Documents 下)。 2。打开终端(Application->Utilities->Terminal 应用程序->实用工具->终端)。在终端中查找到你放置cocos2d解压包的地方。我...
cocos2d-x手机游戏开发,是一本介绍cocos2d游戏引擎,已经如何扩平台开发手机游戏的书。由于上传大小的限制,分成6个压缩包,不好意思。第5卷。
第1 章 Cocos2d-JS 介绍 / 2 第2 章 跑起我们的HelloWorld / 10 第一部分总结 / 27 第二部分 做一个简单的小游戏 第3 章 Cocos2d-JS 的平面世界 / 30 第4 章 让世界来点动静 / 51 第5 章 让玩家操纵这个世界 /...
第一部分:基础篇[1] 第一章主要是手机游戏概述,包括游戏概述、手机游戏类型和开发平台的分析; 第二章介绍手机游戏的策划,包括分析玩家需求,编写策划文案,游戏原型的实现。 第三章介绍C、C++编程基础,对于...
第1章 Cocos2D-X引擎的介绍 1 1.1 何为游戏引擎 1 1.1.1 游戏的核心—引擎 1 1.1.2 引擎的特点 2 1.1.3 知名的引擎介绍 4 1.1.4 引擎的分类 5 1.2 Cocos2D-X引擎的来历 8 1.3 引擎的版本 9 1.4 下载与安装 10 1.5 ...
第1章 介绍cocos2d 第2章 开始学习 第3章 基础知识 第4章 你的第一个游戏 第5章 游戏构成要素 第6章 深入了解精灵 第7章 横向滚屏射击游戏 第8章 完成滚屏射击游戏 第9章 粒子效果 第10章 瓷砖地图 第11章 45度角
第一部分:基础篇[1] 第一章主要是手机游戏概述,包括游戏概述、手机游戏类型和开发平台的分析; 第二章介绍手机游戏的策划,包括分析玩家需求,编写策划文案,游戏原型的实现。 第三章介绍C、C++编程基础,对于...
cocos2d-x默认第一个模板注释 博客介绍 博客主页 http://blog.csdn.net/runaying
教程名称: Cocos2d-x学习资料汇总【】(译)cocos2d菜单教程:第一部分【】cocos2d-iPhone_Programming_Guide【】cocos2d-x2.0射击游戏实现沈大海【】cocos2d-x2.0版本自适应屏幕分辨率AutoScaleTest【】Cocos2d-x_...
Cocos2d-x高级开发教程:制作自己的《捕鱼达人》 图书简介: 《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》是国内第一本全面深入讲解Cocos2d-x进阶内容的图书,Cocos2d-x创始人王哲作序推荐,《捕鱼达人》开发...
国外的cocos2d教学翻译。 一共13大节。 第一弹:第1节到第5节。
如何使用cocos2d来制作一个打地鼠的游戏:第一部分
第四章: 你的第一个游戏(修正错误) 第五章: 游戏构成要素 第六章: 深入了解精灵(Sprite) 第七章: 横向滚屏射击游戏 第八章: 完成滚屏射击游戏 第九章: 粒子效果 第十章: 瓷砖地图(Tilemap)基础知识 第十一章: 45度角...