Quick cocos2dx-Lua(V3.3R1)学习笔记(4)------创建精灵 菜单,让我们做个最简单的点击菜单显示精灵吧
来源:互联网 发布:五彩斑斓的黑色 知乎 编辑:程序博客网 时间:2024/04/30 23:57
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">开始第4篇笔记了,感觉前面的几篇写的太少了,Quick cocos2dx 前面加个quick,就是就能让我们快速上手,快速开发......balabala</span>
一,我们来创建第一个精灵
今天我们来创建精灵,我们前面显示的外星人图片就是一个精灵。
quick给我们提供了display.newSprite这个函数来创建精灵。
我们进入display.lua中看看对这个函数的介绍说明。
哇,这么长,我怎么知道那个函数定位在哪里(不是有搜索吗,不能Ctrl+F搜索么+_+)。
我们换个方法,不用搜索,毕竟我们想要看看quicks给我们封装了那些函数,我只要看函数列表就行了。sublime text给我们提供的这个快捷键,显示函数列表,让我们快速定位到想要找的函数
<<Ctrl大法之-----Ctrl+R>>
看到了吧,这样我们就能看到quick究竟封装了那些函数给我们,毕竟现在quick的文档不是那么全面,我们可以定位过去,顺便看看函数的实现过程,这样更能使用好函数
下面就是这个函数的参数说明了
创建并返回一个 Sprite 显示对象。-- @function [parent=#display] newSprite-- @param mixed 图像名或SpriteFrame对象-- @param number x-- @param number y-- @param table params-- @return Sprite#Sprite ret (return value: cc.Sprite) -- @see Sprite--[[--创建并返回一个 Sprite 显示对象。display.newSprite() 有三种方式创建显示对象:- 从图片文件创建- 从缓存的图像帧创建- 从 SpriteFrame 对象创建
我们用第一个种方式创建
function MainScene:ctor()display.newSprite("Hello.png"):align(display.CENTER, display.cx, display.cy) --设置锚点和图片坐标点:addTo(self) --将生成的图片精灵加入到MainScene的子节点中end
进入模拟器,运行一下看看效果吧
显示成功。ok,我们用第二种方式创建精灵
第二种方式就是调用plist文件加载到精灵缓存中了,我们把一堆小图像打包成大图,生成plist文件,这个文件包含了我们要用的小图在大图的坐标位置
至于如何打包 请搜索 TexturePacker
这个工具使用技巧自行使用谷歌百度大法
function MainScene:ctor()display.addSpriteFrames("lqfRoleWalk.plist","lqfRoleWalk.png")display.newSprite("#lqfRightStop.png"):align(display.CENTER,display.cx, display.cy):addTo(self):setScale(3) --放大3倍end注意:与上面第一个示例不同的,我们将文件载入精灵缓存中,调用display.newSprite中参数加了一个#符号,这个#符号是告诉这个函数,从缓存中加载精灵的
我们来看显示效果(我承认,因为我图太小了所以放大了3倍)
二,创建菜单
本来我想用MenuItemFont函数的,结果使用后,各种提示nil value,去论坛搜索一下,才知道,quick现在推荐用UIPushButton来创建菜单的,其实我还是很怀念用文字菜单的,就是没找到使用方法,如果有童鞋知道的,请告知,谢谢
好吧,现在基本没游戏菜单还是用文字的吧,我们就用UIPushButton这个按钮控件做菜单
用的就cc.ui.UIPushButton创建按钮
举个栗子来看
function MainScene:ctor()local button1 = cc.ui.UIPushButton.new({normal = "Button01.png",pressed = "Button01Pressed.png"})button1:align(display.CENTER,display.cx,display.cy)button1:addTo(self)end菜单按钮就这么创建,我们先看效果
-- @param table images 各种状态的图片-- @param table options 参数表 其中scale9为是否缩放
状态值:- normal 正常状态- pressed 按下状态- disabled 无效状态
function MainScene:ctor()local button1 = cc.ui.UIPushButton.new({normal = "Button01.png",pressed = "Button01Pressed.png"})button1:align(display.CENTER,display.cx,display.cy)button1:addTo(self)button1:setButtonSize(400,200)end我们将菜单尺寸放大
阿西吧,真难看啊思密达!!!&……&¥#¥@(我还是会一点思密达语言的)
我们将传一个九宫格参数进去看效果
function MainScene:ctor()local button1 = cc.ui.UIPushButton.new({normal = "Button01.png",pressed = "Button01Pressed.png"},{scale9 = true})button1:align(display.CENTER,display.cx,display.cy)button1:addTo(self)button1:setButtonSize(400,200)end运行效果
很直白的看出不同了吧!
三,进入主题,给按钮加上回调函数,来显示隐藏图片
话说写了这么多才进入主题,我语文老师会不会打我啊!O(∩_∩)O~(语文老师:我和你们说啊,作文,开头就要点题,批卷老师哪有时间给你全看完啊。。。balabala)
按钮我们显示了出来了,现在如何给按钮加上处理函数呢,不然光点击,没效果,玩个球啊
---------------------------------- 注册用户点击监听-- @function [parent=#UIButton] onButtonClicked-- @param function callback 监听函数-- @return UIButton#UIButton -- end --function UIButton:onButtonClicked(callback) self:addButtonClickedEventListener(callback) return selfendfunction UIButton:addButtonPressedEventListener(callback) return self:addEventListener(UIButton.PRESSED_EVENT, callback)end-- start ------------------------------------ 注册用户按下监听-- @function [parent=#UIButton] onButtonPressed-- @param function callback 监听函数-- @return UIButton#UIButton -- end --function UIButton:onButtonPressed(callback) self:addButtonPressedEventListener(callback) return selfendfunction UIButton:addButtonReleaseEventListener(callback) return self:addEventListener(UIButton.RELEASE_EVENT, callback)end-- start ------------------------------------ 注册用户释放监听-- @function [parent=#UIButton] onButtonRelease-- @param function callback 监听函数-- @return UIButton#UIButton -- end --function UIButton:onButtonRelease(callback) self:addButtonReleaseEventListener(callback) return selfendfunction UIButton:addButtonStateChangedEventListener(callback) return self:addEventListener(UIButton.STATE_CHANGED_EVENT, callback)end
(这不是UIButton的函数么,不是UIPushButton的啊 ?)我们在UIPushButton.lua文件,会看见,其实这个按钮继承了UIButton了,所以我们能调用UIButton的函数
function MainScene:ctor()local button1 = cc.ui.UIPushButton.new({normal = "Button01.png",pressed = "Button01Pressed.png"},{scale9 = true})button1:align(display.CENTER,display.cx,display.cy)button1:addTo(self)button1:setButtonSize(200,100)button1:onButtonClicked(function() print("欢迎收看xxxx")print("大家好,我是小莫")print("我是小小莫")end)end
看到效果了吧,我们开始做点击按钮显示图片了,很简单
function MainScene:ctor()local sprite = display.newSprite("Hello.png")sprite:align(display.CENTER, display.cx, display.cy) sprite:addTo(self)sprite:setVisible(false)local button1 = cc.ui.UIPushButton.new({normal = "Button01.png",pressed = "Button01Pressed.png"},{scale9 = true})button1:align(display.CENTER,display.cx,100)button1:addTo(self)button1:setButtonSize(200,100)button1.showSprieState_ = 1button1:setButtonLabel("normal", cc.ui.UILabel.new({UILabelType = 2,text = "显示图片",size = 30}))button1:setButtonLabel("pressed", cc.ui.UILabel.new({UILabelType = 2,text = "显示图片",size = 30}))button1:onButtonClicked(function() if button1.showSprieState_ == 1 thenbutton1.showSprieState_ = 2sprite:setVisible(true)button1:setButtonLabel("normal", cc.ui.UILabel.new({UILabelType = 2,text = "隐藏图片",size = 30}))button1:setButtonLabel("pressed", cc.ui.UILabel.new({UILabelType = 2,text = "隐藏图片",size = 30}))elsebutton1.showSprieState_ = 1sprite:setVisible(false)button1:setButtonLabel("normal", cc.ui.UILabel.new({UILabelType = 2,text = "显示图片",size = 30}))button1:setButtonLabel("pressed", cc.ui.UILabel.new({UILabelType = 2,text = "显示图片",size = 30}))endend)end
0 0
- Quick cocos2dx-Lua(V3.3R1)学习笔记(4)------创建精灵 菜单,让我们做个最简单的点击菜单显示精灵吧
- Quick cocos2dx-Lua(V3.3R1)学习笔记(8) ---- 事件篇之单点触摸事件,让我们用精灵模仿一个按钮吧
- Quick cocos2dx-Lua(V3.3R1)学习笔记(6)---- 让精灵执行不同的动作
- Quick cocos2dx-Lua(V3.3R1)学习笔记(5)----让精灵动起来吧,使用序列帧动画
- Quick cocos2dx-Lua(V3.3R1)学习笔记(1)----创建新项目
- Quick cocos2dx-Lua(V3.3R1)学习笔记(2)----不要老是显示Hello World,我们显示点别的
- Quick cocos2dx-Lua(V3.3R1)学习笔记(3)----文本渲染之用BM TTF创建文本
- Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸
- Quick cocos2dx-Lua(V3.3R1)学习笔记(7) ---计时器,我是个定时吃饭睡觉的好孩子
- Quick cocos2dx-Lua(V3.3R1)学习笔记(10)-----用自带的build_apk生成APK
- Quick cocos2dx-Lua(V3.3R1)学习笔记(十二)----使用Cocos Code IDE 配合自带的PrebuiltRuntimeLua.apk进行真机调试
- 【COCOS2DX-LUA 学习】精灵创建
- Cocos2dx学习笔记(2)——精灵的创建
- cocos2d-x学习笔记(4)精灵和菜单
- Quick cocos2dx-Lua(V3.3R1)学习笔记(9)-----搭建安卓打包环境,用官方示例anysdk生成apk运行
- lua 精灵菜单
- (cocos2dx学习日记二)中文乱码。添加精灵。添加菜单。添加动画。
- cocos2dx-lua v3 -sprit 精灵详解
- 第17周项目6-学生成绩统计简单版
- 关于WEB三层架构的思考
- iOS-NSThread编程详解
- hdu 5148 树形dp+分组背包问题
- 如何编写高质量和可维护的代码
- Quick cocos2dx-Lua(V3.3R1)学习笔记(4)------创建精灵 菜单,让我们做个最简单的点击菜单显示精灵吧
- c#快捷键大全o
- 统计思路
- Kubernetes印象(by quqi99)
- 写给已有编程经验的 Python 初学者的总结
- 栈的定义与操作
- java IO流
- Linux网络协议栈(一)——Socket入门(1)
- 虚函数的作用