收藏 分享(赏)

二、创建游戏窗口界面动画.doc

上传人:ysd1539 文档编号:7199005 上传时间:2019-05-09 格式:DOC 页数:7 大小:164.50KB
下载 相关 举报
二、创建游戏窗口界面动画.doc_第1页
第1页 / 共7页
二、创建游戏窗口界面动画.doc_第2页
第2页 / 共7页
二、创建游戏窗口界面动画.doc_第3页
第3页 / 共7页
二、创建游戏窗口界面动画.doc_第4页
第4页 / 共7页
二、创建游戏窗口界面动画.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、二、创建游戏窗口界面动画1.打开项目,添加游戏界面类 InGameLayer,同样加入头文件和域名空间,具体内容上次试验指导有。2.编写每个类必要的初始化函数#pragma once#include “c:cocos2d-x-2.2.1cocos2dxlayers_scenes_transitions_nodescclayer.h“#include “cocos2d.h“using namespace cocos2d;class InGameLayer :public CCLayerpublic:InGameLayer(void);InGameLayer(void);public:CREATE

2、_FUNC(InGameLayer);virtual bool init(); /场景初始化/ theres no id in cpp, so we recommend returning the class instance pointerstatic cocos2d:CCScene* CreateScene();/场景对象函数;CCScene* InGameLayer:CreateScene()/ scene is an autorelease objectCCScene *scene = CCScene:create();/ layer is an autorelease objectI

3、nGameLayer *layer = InGameLayer:create();/ add layer as a child to scenescene-addChild(layer);/ return the scenereturn scene;bool InGameLayer:init()bool b1 = CCLayer:init();Winsize =CCDirector:sharedDirector()-getVisibleSize();return b1;3.添加战斗场景背景类 GameObject,用于存放背景滚动效果#pragma once#include “c:cocos2

4、d-x-2.2.1cocos2dxlayers_scenes_transitions_nodescclayer.h“#include “cocos2d.h“using namespace cocos2d;class GameObject :public CCLayerpublic:GameObject(void);GameObject(void);public:CREATE_FUNC(GameObject);virtual bool init(); void move();/设置背景移动函数/ theres no id in cpp, so we recommend returning the

5、 class instance pointerprivate:cocos2d:CCSprite* back1;/第一张背景图cocos2d:CCSprite* back2;/第二张背景图float vy;/背景移动速度;在 GameObject.cpp 下实现该实现的函数首先对 3 个变量在构造函数进行初始化GameObject:GameObject(void)back1=NULL;back2=NULL;vy =5.5f;/实现初始化和移动函数bool GameObject:init()bool b1 = CCLayer:init();back1 =CCSprite:create(“bg_02

6、.png“);/载入第一张背景图this-addChild(back1);back1-setAnchorPoint(ccp(0,0);/设置对应的坐标back1-setPosition(ccp(0,0);/设置位置back2 =CCSprite:create(“bg_01.png“);/载入第二张背景图this-addChild(back2);back2-setAnchorPoint(ccp(0,0);/设置对应的坐标back2-setPosition(ccp(0,back1-getPositionY()+back1-getContentSize().height- 2);/将图片放在图片1上

7、的位置上return b1;void GameObject:move()/计算移动速度float oneNextPos = back1-getPositionY() - vy;float twoNextPos = back2-getPositionY() - vy;/设置图片跑起来back1-setPositionY(oneNextPos);/设置图片1的Y坐标back2-setPositionY(twoNextPos);/设置图片2的Y坐标if (oneNextPos getContentSize().height)/将第一张图片设置为第二张的高度,第一张图片压在第二张图片上面oneNext

8、Pos= back2-getPositionY() + back2-getContentSize().height;back1-setPositionY(oneNextPos);else if(twoNextPos getContentSize().height)/与上面同理twoNextPos= back1-getPositionY() + back1-getContentSize().height;back2-setPositionY(twoNextPos);4.在 InGameLayer.h 中加入 GameObject 头文件,并且申明对象 mBack#include “GameObj

9、ect.h“GameObject* mBack;/背景对象/在构造函数中对指针赋为NULL;InGameLayer:InGameLayer(void)mBack = NULL;在init函数中加入背景滚动效果mBack = GameObject:create();/初始化mBackthis-addChild(mBack);/设置锚点mBack-setAnchorPoint(ccp(0,0);/设置锚点mBack-setPosition(0,0);/设置位置mBack-move();/将背景图移动起来5.注册动画效果函数在 InGameLayer.h 中加入三个重要的函数,并实现virtual

10、void onEnterTransitionDidFinish();/完全进入场景执行的函数void gameStart();/开始游戏void gameStep(float dt);/游戏动画/完全进入场景执行的函数void InGameLayer:onEnterTransitionDidFinish()gameStart();/执行游戏开始函数/游戏开始函数void InGameLayer:gameStart()this-schedule(SEL_SCHEDULE(/提供接口开启时间调用函数,0.02秒调用一次/游戏动画调用函数void InGameLayer:gameStep(float

11、 dt)mBack-move();/每过0.02秒移动背景图片6.在 WelcometoGame.cpp 中加入头文件,并且实现按钮函数#include “InGameLayer.h“void WelcometoGame:btnPlayMenuCallBack(CCObject* pSender)/替换当前场景CCDirector:sharedDirector()-replaceScene(InGameLayer:CreateScene();7.点击运行后发现背景图层滚动起来,祝你成功!8.本章注意要点onEnterTransitionDidFinish()函数为完全进入场景后开始执行的。通过gameStart()用接口绑定gameStep()函数,0.02秒调用一次。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报