首页 > 代码库 > 实训十(平台的实现)
实训十(平台的实现)
首先是开始按钮的设计,没有开始游戏也就无从开始
用到的方法,即MenuItemSprite的使用
其中,需要注意的是它有五个参数Node*、Node*
、Node*
、Ref*
、SEL_MenuHandler前三个类型的意义分别是未点击时的状态、点击时的状态、无法点击时的状态,第四个目标对象,第五个是回调函数,其他相似方法的参数请到源码中获知。
另外,在Menu中所有的按钮都需要加载到Menu对象中,才能够显示出来。
然后是,人物所在平台
在资源文件夹中有一张平台信息的图片,使用循环的话,可以更方便简洁
所以在,background.h文件中添加如下代码:
Sprite* stage_sprite[3];
int
stage_number;
然后,在cpp文件中的init()方法中添加
for
(
int
i = 0;i<3;i++)
{
stage_sprite[i] = Sprite::create(
"/D:\android\cocos2d-x-3.10\tools\cocos2d-console\bin\Stick_mxj\Resources、stage1.png"
);
}
stage_sprite[0]->setScaleX(30);
for
(
int
i = 1;i<3;i++)
{
stage_sprite[i]->setPosition(Vec2(MyWinSize.width + stage_sprite[i]->getScaleX()*stage_sprite[i]->getContentSize().width, stage_sprite[i]->getContentSize().height/2));
}
stage_sprite[0]->setPosition(Vec2(MyWinSize.width/2, stage_sprite[0]->getContentSize().height/4));
for
(
int
i = 0;i<3;i++)
{
this
->addChild(stage_sprite[i],3);
}
即,将平台显示到屏幕中央
接下来是,点击开始时,相关的按钮消失,平台移动到左侧
void
BackgroundLayer::Start(Ref* pSender)
{
this
->removeChild(menu);
this
->removeChild(GameName);
MoveTo* stageMove = MoveTo::create(0.2, Vec2(100,stage_sprite[0]->getContentSize().height/2));
stage_sprite[0]->runAction(stageMove);
addStage();
}
最后,触摸事件的注册,即点击屏幕,需要有相应的动作响应,需要注意的是
EventListenerTouchOneByOne
单点触摸EventListenerTouchAllAtOnce
多点触摸
代码不是很难,就不再赘述了
实训十(平台的实现)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。