Cocos2d-x Studio与IDE的使用
来源:互联网 发布:流水账记账软件 编辑:程序博客网 时间:2024/06/05 07:49
环境搭建如前,Studio2.0.6,IDE1.01,framework 3.4rc1,Cocos2d-x 3.3final
环境搭建见:http://blog.csdn.net/riririreach/article/details/45391885
要实现的是在Studio中建项目,有两个场景,第一个场景是进入程序时显示的场景,场景中有一个按钮,按这个按钮就进入第二个场景
首先在Studio中新建项目:别忘了把选项都选上
这里建的项目直接发布到IDE中,模拟器运行后是一个小项目,背景是农场,上面有个是松鼠还是什么的从左向右滑,整个画面可以按住鼠标拖动
但这不是我想要的,暂时也还没到动画的时候,所以还是先在Studio里把资源编好,发布到IDE后再修改代码调用就行了
目标是两个场景切换,进入程序时显示的场景有个按钮,先弄这个场景
首先,我要把要用的资源文件导入,其实就是三张图片,两张是两个场景的背景图,一张是按钮的背景图
新建项目后有个MainScene.csd,一片黑,按某教程,在控件中拖个精灵过去
HelloWorld.png作为第一个场景的图片直接拖到精灵的位置就行
再从控件中拖个按钮过去
再将button_n.png拖到按钮属性中->背景样式->正常状态的白框中
再编辑一下文本字体颜色什么的就OK了
保存,建第二个场景
在项目上右键->新建文件
选场景,起个名字叫PlayScene吧,新建
后面的操作跟第一个场景一样,就是背景图用的是bg.png,而且这个场景不需要按钮
全部保存,最简单方法就是Ctrl+Shift+S
再依次发布资源,发布到IDE
这样项目就在IDE中打开了
有个问题,新项目src目录下没有刚刚建的两个场景的文件,只有一个main.lua和一个GameScene.lua,在GameScene.lua里会直接建一个场景
背景是个农场,一个小动物从左至右自己滑动,鼠标按住可拖动场景,和我们建的两个场景完全无关。
也就是说需要建立MainScene.lua和PlayScene.lua
然后在main.lua里进行相应的改动
在src下新建两个lua文件,建好都是空白的
MainScene.lua
local MainScene = class("MainScene",function() return cc.Scene:create()end)function MainScene.create() local scene = MainScene.new() local rootNode=cc.CSLoader:getInstance():createNodeWithFlatBuffersFile("MainScene.csb") scene:addChild(rootNode) return sceneendreturn MainScene
local PlayScene = class("PlayScene",function() return cc.Scene:create()end)function PlayScene.create() local scene = PlayScene.new() local rootNode=cc.CSLoader:getInstance():createNodeWithFlatBuffersFile("PlayScene.csb") scene:addChild(rootNode) return sceneendreturn PlayScene
先不急,看看main.lua,里面要把MainScene设上,原先的代码就不上,看改完的
local function main() collectgarbage("collect") -- avoid memory leak collectgarbage("setpause", 100) collectgarbage("setstepmul", 5000) -- initialize director local director = cc.Director:getInstance() --turn on display FPS director:setDisplayStats(true) --set FPS. the default value is 1.0/60 if you don't call this director:setAnimationInterval(1.0 / 60) cc.Director:getInstance():getOpenGLView():setDesignResolutionSize(640, 960, 2) --create scene local scene = require("MainScene") local gameScene = scene.create() --gameScene:playBgMusic() if cc.Director:getInstance():getRunningScene() then cc.Director:getInstance():replaceScene(gameScene) else cc.Director:getInstance():runWithScene(gameScene) endend因为我用的背景图是640*960的,所以分辨率就改成这样,原先是480*320
第二处原先写的是GameScene,现在改成了我造的MainScene
这样运行就显示我要的场景了
然后再回过头看MainScene.lua
得加东西让按钮生效
local MainScene = class("MainScene",function() return cc.Scene:create()end)function MainScene.create() local scene = MainScene.new() local rootNode=cc.CSLoader:getInstance():createNodeWithFlatBuffersFile("MainScene.csb") scene:addChild(rootNode) <span style="color:#ff0000;">local function onPlay() local ps=require("PlayScene") local playScene=ps.create() if cc.Director:getInstance():getRunningScene() then cc.Director:getInstance():replaceScene(playScene) else cc.Director:getInstance():runWithScene(playScene) end end local btn=rootNode:getChildByName("Button_1") btn:addTouchEventListener(onPlay)</span> return sceneendreturn MainScene
红字是添加的部分
函数onPlay就是按钮的点击事件,即切换到PlayScene场景
下面local btn=rootNode:getChildByName("Button_1")是获取按钮
如下图,在Studio中点中按钮,右面属性中的名称就是这个name
然后就可以运行了,进入之后先是MainScene
点击Play按钮后
OK,目标实现
追加,分辨率设置
在main.lua中的语句
cc.Director:getInstance():getOpenGLView():setDesignResolutionSize(640, 960, cc.ResolutionPolicy.SHOW_ALL)
这个是代表场景的分辨率是640*960,cc.ResolutionPolicy.SHOW_ALL代表是显示全部内容
在此语名前再加一行
cc.Director:getInstance():getOpenGLView():setFrameSize(320,480)
设置模拟器的尺寸是320*480,最终显示出来的就是比例不变,但缩小了一半全内容显示的
好了,完美解决
- Cocos2d-x Studio与IDE的使用
- android studio 使用cocos2d-x的尝试
- Cocos2d-x studio & Framework & IDE 可用环境搭建
- COCOS2D-X在LINUX下的IDE
- COCOS2D-X在LINUX下的IDE
- cocos2d-x 动作的分类与使用
- cocos2d-x 动作的分类与使用
- cocos2d-x场景与层的使用
- cocos2d-x 动作的分类与使用
- cocos2d-x 3.2 使用cocos studio导出的帧动画
- Cocos2d-x Lua 使用Cocos Studio导出的动画
- Cocos2d-x lua 使用Cocos Studio导出的动画
- Cocos2d-x lua 使用Cocos Studio导出的动画
- 使用Cocos Code IDE运行lua-test(本人使用的是cocos2d-x 3.3rc0)
- 使用Cocos Code IDE设置Quick-Cocos2d-x 3.2-RC1版本语法提示的方法
- cocos2d-x 3.x 使用cocos studio导出的.csb资源
- 【cocos2d-x 学习与应用总结】最近一段时间使用cocos2d-x lua的总结
- Cocos2d-x游戏开发之Lua开发ide的搭建
- onload和ready的不同
- 注意:firstChild和lastChild
- MTK 6260功能机蓝牙介绍
- Python 实现最长公共子序列LCS
- nmake的常用命令
- Cocos2d-x Studio与IDE的使用
- HTML,CSS和JAVASCRIPT入门经典 笔记(一)
- iOS:数据转json对象
- 用js实现下列功能,将给定的数字转化为千分位的格式,如把"10000"转化为"10,000",并考虑性能方面的因素
- Unity读取点云数据
- Collection框架解析
- FLEX元标签_Bindable
- ADAM-4117快速入门手册-4-20模块知识及编程
- C++primer 2.2 变量--全局与局部