本节内容是创建第一个Quick项目,并熟悉Quick项目的目录结构以及分析下Quick项目在Lua层是如何启动的!


1.新建Quick项目

新建Quick项目很简单,打开player,点击右下角的“新建项目”,player会切换到新的界面,如下:

选择项目的位置和输入项目的名字就不说了。

下面的Portrain是竖屏和Landscape是横屏,根据自己的项目设定选择,

copy Source Files默认勾选就可以了。

设定完毕之后点击Create Project会弹出来一个界面,如下:

意思是告诉你工程正在创建,成功之后你就可以打开项目了!

点击OK,你会发现Create Project变成了Open,此时不要着急点Open,因为创建工程的脚本可能还没跑完,你点的太快会导致报错。

好的,现在我们来点击Open打开新建的项目,你会看到一个黑乎乎的屏幕中间显示着Hello World,作为一个coder,你应该很亲切!

2.Quick项目的结构

打开你新建的项目,别告诉我你忘了放在哪里,你会看到如下内容:

  • frameworks目录是存放各个平台的项目,小白就先不要管了

  • res目录是存放你游戏中用到的资源的,神马图片啊,配置文件啊等等

  • runtime目录是存放预编译的运行是库的,你也先不用关,其实我就从来没管过

  • src目录就是存放你项目所有lua代码的地方了

3.Quick在Lua层的启动

你上面见到的黑乎乎的屏幕中间显示着的Hello World是如何出现的呢?下面我们就一步一步的来解答!

首先我们打开src/main.lua,至于用啥编辑器打开就随意了,个人推荐sublime text

打开之后我们看这一行:

require("app.MyApp").new():run()

这里可以说就是Lua层的主入口了,这句代码是啥意思呢?就是说:载入app.MyApp模块并创建一个MyApp实例,并调用MyApp的run方法。


那么,MyApp模块在哪里呢?就是src/app/MyApp.lua

现在打开MyApp.lua文件,我们来看看run方法是个啥。

functionMyApp:run()
cc.FileUtils:getInstance():addSearchPath("res/")
self:enterScene("MainScene")
end
  • 第一行代码是说把前面提到的res目录加载到你的资源搜索路径

  • 第二行是调用自身的enterScene方法,这个方法的作用是进入名字为参数“MainScene"的场景


那么MainScene场景在哪里呢?就是src/app/scenes/MainScene.lua

打开MainScene.lua,如下:

localMainScene=class("MainScene",function()
returndisplay.newScene("MainScene")
end)

functionMainScene:ctor()
cc.ui.UILabel.new({
UILabelType=2,text="Hello,World",size=64})
:align(display.CENTER,display.cx,display.cy)
:addTo(self)
end

functionMainScene:onEnter()
end

functionMainScene:onExit()
end

returnMainScene

最上面是声明了一个MainScene类。

ctor方法是MainScene的构造方法,你可以在这里完成MainScene的相关初始化,我们看看默认的MainScene初始化都干了啥。

构造函数中只是初始化了一个UILabel并添加到场景里,也就是addTo(self)这句。这个UILabel的内容就是"Hello,World"。

好了,到这里,我们已经明白了Quick默认的工程是如何启动并且显示"Hello,World"给你看的了。

4.该你动手了

光看代码是不行的,搞明白了基本的东西就要动手去写代码,这样才能真正的学习好Quick。

你可以先替换下"Hello,World"为自己想现实的内容,然后保存代码,切换到player,command + R刷新player(win 下为f5),看看是不是变了呢。

好吧,昨天本来想做点有意思的小东西,但白天忙的忘了准备素材,所以,今天就到这里吧。

下一篇内容是啥我还没想好,计划是设计一个小游戏,然后在一步一步的构建游戏中逐步讲解Quick的各种元素的使用,精灵啊,按钮啊,等等等等。

Quick小白书系列二创建自己的项目并做点有意思的小内容的更多相关文章

  1. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

  2. ios – 将UIViewController视图属性设置为不带有storyboard / nib的自定义UIView类

    或者上面的代码片段是推荐的吗?

  3. 在iOS App中使用CoreAnimation / QuartzCore动画UILabel

    我实际上在我的iOS应用程序中设置了动画UILabel的问题.在网上搜索代码片段2天后,仍然没有结果.我找到的每个样本都是关于如何为UIImage制作动画,将它作为子视图添加到UIView中.有没有关于动画UILabel的好例子?我通过设置alpha属性为闪烁动画找到了一个很好的解决方案,如下所示:我的功能:在UILabel上调用我的函数:但是pulse或缩放动画呢?另一个注意事项–可以在here找到CALayer动画属性的完整列表.快乐的补间!

  4. uitableview – UILabel和UILabel在iOS 7中的省略号颜色变化

    提前谢谢你的帮助!

  5. ios – UILabel在垂直生长和断线时添加了不必要的顶部和底部填充

    )之间切换也不能解决问题.我能够在Xcode6和Xcode7beta,InterfaceBuilder以及运行应用程序时重现此行为.解决方法看起来修复无意填充的唯一方法是将Lines设置为常量(例如3).UILabel仍将动态增长,并且不会添加任何填充.

  6. ios – 如何根据文本计算TextView高度

    我使用下面的代码计算文本的高度,然后为UILabel和UITextView设置此高度这对于UILabel来说是完美的,但对于UITextView来说,它计算错误.我认为问题的发生是因为UITextView的填充(左,右)比UILabel大.那么如何计算正确的文本大小以便在UITextView中显示.任何帮助或建议将非常感谢.如下面的描述图片具有相同的大小(300),相同的字体,相同的文字,但UIT

  7. ios – UILabel有两种不同颜色的文字

    我怎么能有一个UILabel有两种不同颜色的字体?

  8. ios – 默认的自动布局内容拥抱和内容压缩阻抗优先级值是什么?

    我正在尝试调试自动布局问题,并且知道内容拥抱和内容压缩阻力优先级的默认值将有所帮助.这些是什么?它们是否特定于特定组件?我可以使用常量来引用它们吗?

  9. ios – 突出显示UILabel中的文本

    我正在尝试设置背景颜色/突出显示在UILabel内的文本.问题在于,还会突出显示添加到UILabel中以保持文本居中的换行符和空格.注意UILabel最后一行之前的间距突出显示.此外,任何新行的开始和结束也突出显示.我使用以下代码创建上面的示例:我想实现的输出是只突出显示文本和单词之间的空格,如果只有一个空格.文本的长度和UILabel的大小会不断变化,所以硬编码解决方案不是一个选择.解决方法在我

  10. ios – 更改UIBarButtonItem标题时,转换是抖动/闪烁

    解决方法而不是再次设置标题,您可以再次使用标题设置按钮,然后将其动画化:

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部