增加一个精灵
在开始增加一个精灵之前,你需要一些项目所需要的图像,你可以从这个链接中下载这些图像.
下载好这个图像资源并解压,全部加到XCode中的Resources目录,请确保”Copy items intodestination group’s folder (if needed)”是选中的状态.
现在你有了这些图像,你需要指明如何使用它.注意在Cocos2D中的x,y坐标的零点是在屏幕的左下角,xy坐标的最大值在右上角.由于这个项目运行在横屏模式,这意味着在3.5″屏上对应右上角值是(480, 320), 在4″屏上对应右上角值是(568, 320).
注意:如果你开发过iOS程序你可能会说,等等, 4″屏不是1136×640像素,并不是568×320像素.
你说的没错,但是Cocos2D使用的是点而不是像素.在Retina显示设备上一个点等于两个像素,因些1136×640像素等于568×320点.这个做法相当合理,因为如果在你的游戏中使用点来处理,你的坐标就能够在retina和非retina显示屏上保持一套代码.
另外你需要注意默认设置这个对象的位置是相对于精灵的中心点位置.因些假如你想你的运动精灵对于水平左对齐,垂直居中.
X的位置,你需要设置为一半精灵宽度大小.
Y的位置,你需要设置为窗口高度的一半.
下面这个图可以帮忙你更好的了解它.
了解了这个之后,让我们在代码中实现它,打开HelloWorldLayer.m,并用下面的代码替换init的实现:
- (id) init { if ((self = [super init])) { CGSize winSize = [CCDirector sharedDirector].winSize; CCSprite *player = [CCSprite spriteWithFile:@"player.png"]; player.position = ccp(player.contentSize.width/2, winSize.height/2); [self addChild:player]; } return self; } |
编译并运行它,新加的精灵就会在你要的位置中正确中显示,但是你可能注意到背景是黑色的,同我们的精灵不是很协调,所以我们需要调整一下.
一种简单的方法就是使用CCLayerColor类来自定义背景色.打开HelloWorldLayer.h并修改HelloWorld的接口从CCLayerColor类继承.
@interface HelloWorldLayer : CCLayerColor |
再次打开HelloWorldLayer.m并对init函数做一点小的修改设置背景色为白色.
if ((self = [super initWithColor:ccc4(255,255,255,255)])) { |
编译并运行,背景已经变成白色了.
注意:实际上我们的资源包中包含了两个版本图, player.png (27×40pixels)和player-hd.png (两倍大小– 54×80 pixels)
Cocos2D是非常智能的,它会根据你运行设备的显示分辨率自动选择什么大小的图像.在你的高清图中需要增加-hd的后缀就可,这同UIKit中增加@2x的后缀原理是一样的.