zoukankan      html  css  js  c++  java
  • 实训十(平台的实现)

    首先是开始按钮的设计,没有开始游戏也就无从开始

    用到的方法,即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:androidcocos2d-x-3.10 oolscocos2d-consoleinStick_mxjResources、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 多点触摸

    代码不是很难,就不再赘述了

     
  • 相关阅读:
    【读书笔记】 —— 《数学女孩》
    【读书笔记】 —— 《数学女孩》
    《论语》《大学》《中庸》和孟子
    《论语》《大学》《中庸》和孟子
    零点定理、介值定理
    java学习笔记(3)——面向对象
    linux下的文件操作——批量重命名
    Java学习笔记(4)——JavaSE
    java学习笔记(5)——内部类
    学生管理系统调试——实时错误(实时错误“424”“5”“91”)
  • 原文地址:https://www.cnblogs.com/revenge/p/5891333.html
Copyright © 2011-2022 走看看