本节课我学习了如何创建一个场景。本节课算真正意义上理解了src文件夹的真面目~。让我们一起来新建一个场景吧!
首先要搞清楚进入场景的入口在哪里?在main.js这个文件中。有一个函数名为cc.game.onStart。这个function中:
cc.view.setDesignResolutionSize(800,450,cc.ResolutionPolicy.SHOW_ALL);
上述代码是进行屏幕尺寸的设定SHOW_ALL是表示适配全屏幕。
最为关键的一句话是cc.director.runScene(new myscene(这里是你场景的名字));当然此时我们还没有定义场景,这里只是一个入口。通过访问
http://api.cocos.com/cn/d7/df3/classcocos2d_1_1_director.html了解到场景类它是主要负责创建和处理主窗口,以及管理场景的执行。它还有很多其他的方法如:setDisplayStats(设置帧率的显示)等。
下面我们新建一个myscene.js空文件。下面是核心代码:
var mylayer = cc.Layer.extend({
ctor:function(){
this._super();
var size = cc.winSize;
var label1 = new cc.LabelTTF("这里是游戏场景","黑体",50);
var label2 = new cc.LabelTTF("我的名字是寒风",50);
var bg = new cc.Sprite(res.HelloWorld_png);
label1.setPosition(size.width / 2,50);
label2.setPosition(size.width / 2,400);
bg.setPosition(size.width / 2,size.height / 2);
this.addChild(bg,0);
this.addChild(label1,1);
this.addChild(label2,1);
}
});
var myscene = cc.Scene.extend({
ctor:function(){
this._super();
var layer1 = new mylayer();
this.addChild(layer1);
}
});
这两个函数里边都有this._super()函数。他是在调用父类的构造函数。
var layer1 = new mylayer();
this.addChild(layer1);
这里是将mylayer进行了实例化操作得到一个对象,相信大家学习过面向对象的对这一行代码理解起来并不困难。然后将layer添加到他的父节点也就是当前场景中。如此一个场景构建完毕。
其他的不过多阐述,这里只提跟场景有关的学习心得。
最后附上本节课的作业链接:
http://www.cocoscvp.com/usercode/2016_04_10/eea5fc2c0ea2d7b741f2bab83554084af404af7b/