好的,项目建好了,运行了看了效果,连cocos2dx那么经典的背景图都没了,不行,我们来修改他们。
到我们创建项目路径查看
四个文件夹加一个Json文件
第二个res文件夹就是我们放资源的地方
第四个scr文件夹就是我们lua脚本的存放位置
看看这个配置Json文件里面有是什么
真是我们模拟器的配置信息(你这他么不是废话么,-o-!!!)。
既然我们要显示经典的cocos2dx外星人背景图,先去cocos2dx文件夹盗一张图放到我们res文件夹下(呸,都是自家的,怎么能用盗字呢!)
现在修改脚本,达到我们要的效果。开工......
我们用sublime text打开项目文件夹(请忽略未注册信息吧-0- )
看到我们res文件夹下面有了这张图
我么进入src看看这个结构是咋样的
src/app文件夹下面就是我们要写lua脚本的存放位置
cocos文件夹放的是引擎的lua文件
framework文件夹存放的就是quick封装cocos2dx lua API的地方
在scr下面的有mian.lua和config.lua文件
打开config.lua
-- 0 - disable deBUG info,1 - less deBUG info,2 - verbose deBUG info --是否显示deBUG信息DEBUG = 1-- display FPS stats on screen --是否显示fps信息DEBUG_FPS = true-- dump memory info every 10 seconds --是否每10s输出deBUG内存信息 DEBUG_MEM = false-- load deprecated API --是否导入不推荐使用的APILOAD_DEPRECATED_API = false-- load shortcodes API --是否导入简码APILOAD_SHORTCODES_API = true-- screen orIEntation --屏幕方向CONfig_SCREEN_ORIENTATION = "portrait"-- design resolution --设计分辨率CONfig_SCREEN_WIDTH = 640CONfig_SCREEN_HEIGHT = 960-- auto scale mode --自适应模式CONfig_SCREEN_autoSCALE = "FIXED_WIDTH"这里存放的就是配置信息了(我又说废话,但是不说的,上下文承接。。。。呜呜呜,让我说完。呜呜呜。。啊,别打脸。。)
这个main.lua相当于我们写c++的cocos2dx 的win32文件夹里面的main.cpp文件了,看一下
require("app.MyApp").new():run()运行的是app下面的MyApp.lua文件
我们打开这个文件
require("config")require("cocos.init")require("framework.init")local MyApp = class("MyApp",cc.mvc.AppBase)function MyApp:ctor() MyApp.super.ctor(self)endfunction MyApp:run() cc.fileUtils:getInstance():addSearchPath("res/") self:enterScene("MainScene")endreturn MyApp
我们就看run函数即可,他进入的是MainScene场景
我们打开scenes文件夹下面的MainScene.lua文件
local MainScene = class("MainScene",function() return display.newScene("MainScene")end)function MainScene:ctor() cc.ui.UILabel.new({ UILabelType = 2,text = "Hello,World",size = 64}) :align(display.CENTER,display.cx,display.cy) :addTo(self)endfunction MainScene:onEnter()endfunction MainScene:onExit()endreturn MainScene
ok,看到Hello,world字样了吧,这边就是主要修改的地方了
修改前,我们先分析下这段简短的代码
注意:class这个函数lua是没有的,是引擎提供的,在\quick-3.3rc1\quick\framework\functions.lua里面有原型,有兴趣自己去看看
在定义自己的类的时候,用local修饰,这样才不会污染全局变量表。
我们看ctor函数,这边就是我们MainScene类的构造函数了,作用和c++ cocos2dx的init函数差不多,我们在里面初始化我们要的精灵,UI等东西
我们先分析第一个cc.ui.UILabel.new函数,其他的我们都很容易看懂,但是这个UILabelType=2中2是什么类型,我们还是看这个函数原型,文件在G:\quick-3.3rc1\quick\framework\cc\ui\UILabel.lua
local UILabelUILabel = class("UILabel",function(options) if not options then return end if 1 == options.UILabelType then return UILabel.newBMFontLabel_(options) elseif not options.UILabelType or 2 == options.UILabelType then return UILabel.newTTFLabel_(options) else printInfo("UILabel unkonw UILabelType") endend)UILabel.LABEL_TYPE_BM = 1UILabel.LABEL_TYPE_TTF = 2
原来这是用TTF方式创建Label(所以看到不懂的,最好跳转到定义哪里看一下,就清楚这个魔数啥意思了,推荐sublime text装个quickxdev这个插件,能帮你转到函数定义处)
align函数就是这是设置这个label的位置,第一个参数是锚点 第二 三的参数就是x,y。在c++的cocos2dx里面这个我们要写两行,这里我们只要一行就ok了
addTo函数作用就是把当前结点作为一个子结点加到target中
你可以改成
function MainScene:ctor() local label = cc.ui.UILabel.new({UILabelType = 2,size = 64}) label:align(display.CENTER,display.cy) self:addChild(label)end换到模拟器,F5一下模拟器,我们看到,效果是一样的
扯了半天,还没有做我们正事,显示背景图,并且将文字修改成其他的
下面是修改的ctor函数
function MainScene:ctor() local label = cc.ui.UILabel.new({UILabelType = 2,text = "Hi,yiye3376",display.height-100) self:addChild(label) display.newSprite("Hello.png",display.cy) :addTo(self)end
写完,保存
display是什么?display 模块封装了绝大部分与显示有关的功能,并负责根据 config.lua 中定义的分辨率设定计算屏幕的设计分辨率。
更多函数使用方法查看这个文件就行了
框架初始化后,display 模块提供下列属性:- display.sizeInPixels.wIDth,- display.sizeInPixels.height 屏幕的像素分辨率- display.wIDthInPixels,- display.heightInPixels 屏幕的像素分辨率- display.contentScaleFactor 内容缩放因子- display.size.wIDth,- display.size.height 屏幕的设计分辨率- display.wIDth,- display.height 屏幕的设计分辨率- display.cx,- display.cy 屏幕中央的 x 坐标和 y 坐标- display.left,- display.top,- display.right,- display.bottom 屏幕四边的坐标- display.c_left,- display.c_top,- display.c_right,- display.c_bottom 当父对象在屏幕中央时,屏幕四边的坐标
f5查看效果图
好,看到效果了,很好
总结以上是内存溢出为你收集整理的Quick cocos2dx-Lua(V3.3R1)学习笔记(2)----不要老是显示Hello World,我们显示点别的全部内容,希望文章能够帮你解决Quick cocos2dx-Lua(V3.3R1)学习笔记(2)----不要老是显示Hello World,我们显示点别的所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)