添加飞机
加入了场景,背景之后,这一步,我们将加入一个飞机。在编写代码之前,我们需要获得一张飞机的PNG图片作为素材。并将图片在"res/HD”,”res/Normal"文件夹下(先不考虑分辨率适配的问题)。如图所示:
<img title = 'addplane.png' src='http://cdn.cocimg.com/bbs/attachment/Fid_41/41_288414_c3f6c9880db27a6.png' >
然后,我们打开src文件下的resource.js,将我们加入的文件用变量定义。引擎将预加载这些资源。
<pre class="brush:js; toolbar: true; auto-links: false;">
var s_HelloWorld = "HelloWorld.jpg";
var s_CloseNormal = "CloseNormal.png";
var s_CloseSelected = "CloseSelected.png";
// 将资源写在这里,程序会预加载这些资源
var s_Plane = "plane.png";
var g_resources =
//image
{src:s_HelloWorld},
{src:s_CloseNormal},
{src:s_CloseSelected},
{src:s_Plane}
//plist
//fnt
//tmx
//bgm
//effect
];
现在我们就可以在代码中加入飞机了:
<pre class="brush:js; toolbar: true; auto-links: false;">
var MyLayer = cc.LayerColor.extend({
plane:null,
init:function () {
// 1. super init first
// 必须调用父类init()方法,很多bug都是由于没有调用父类init()方法造成的
this._super();
// 设置Layer的背景,使用RGBA
this.setColor(cc.c4(126,126,126,126));
// 获得游戏屏幕的尺寸
var winSize = cc.Director.getInstance().getWinSize();
// 获取屏幕坐标原点
var origin = cc.Director.getInstance().getVisibleOrigin();
// 创建一个飞机,游戏中大部分物体都能使用cc.Sprite表示
// 飞机的图案按照cc.rect(x,y,width,height)从图片中截取
// 以(x,y)为左上角,width为宽,height为高的矩形
this.plane = cc.Sprite.create(s_Plane,cc.rect(2,168,62,75));
// 将飞机设置在屏幕底部,居中的位置
// 图片的锚点在矩形的中心点,设置的就是这个点的位置
this.plane.setPosition(cc.p(origin.x + winSize/2 , origin.y + this.plane.getContentSize().height/2));
this.addChild(this.plane,1);
return true;
}
});
var MyScene = cc.Scene.extend({
onEnter:function () {
this._super();
var layer = new MyLayer();
this.addChild(layer);
layer.init();
}
});
从代码中我们可以看出,需要从图片中截取飞机,还需要对飞机进行定位,所以下面我画了两张图片帮助大家理解游戏的坐标系。
素材中的坐标系,是以左上角为坐标原点,向右为X轴,向下为Y轴。
而游戏中,是左下角为坐标原点,向右为X轴,向上为Y轴。
现在运行程序,将看到如下画面(右侧为开发者工具):
上一篇:http://www.cocoachina.com/bbs/read.php?tid=188215
下一篇:http://www.cocoachina.com/bbs/read.php?tid=188216



第四回合呢
图片路径this.plane = cc.Sprite.create(“plane.png”,cc.rect(2,168,62,75)); 写成这样没有错,安装LZ的是 this.plane = cc.Sprite.create(s_Plane,cc.rect(2,168,62,75));报错。。。。。