IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Solar2D&Corona(一) - Hello World -> 正文阅读

[游戏开发]Solar2D&Corona(一) - Hello World

让我们现在就开始快速的了解一下Corona SDK。

下载教程文件

HelloWorldTutorial.zip

Hello World

学习CoronaSDK唯一最好的方法就是动手编写一个应用程序。我们用来编写程序的语言叫做Lua。根据传统,我们急需编写一些简单Lua代码,来打印“Hello World”。

让我们开始吧!你需要一个文本编辑器来编写你的应用程序。然后,你把文件保存在某个文件夹下,一边Corona模拟器运行它,并显示你要的结果。

在文本编辑器中,输入以下内容:

print( “Hello World” )

然后保存这个文件为main.lua,放在某个可以容易找到的文件夹中。通常每个程序都应该有自己的文件夹。

为了运行该程序,你需要启动Corona模拟器。所有的Corona SDK文件应该在\Applications\Corona\中。(可以在 Getting Started Guide 中获得关于如何安装Corona SDK的信息)

双击Corona Terminal图标如下图。

这将会启动一个控制台窗口并且打开一个文件对话框。在对话框中,找到你的main.lua文件,并且点击Open按钮。

这时候你会看到“Hello World”出现在控制台窗口中。

你也会看到一个空白的模拟器窗口,看上去象一个真实的iPhone。在这个例子中,iPhone屏幕保持空白,因为我们的程序只是在控制台输出一个字符串而已。

好,现在让我们解释一下程序是怎么工作的吧。这个应用程序从main.lua文件中启动。模拟器载入该文件,然后按照其中包含的指令行事。通常,一个应用程序包含语句和变量。语句提供关于想要执行的操作和计算;而变量通常是用来保存需要计算的值。

在这个程序中,我们使用了一个叫做print的函数。一个函数就是执行一些任务的一系列指令的集合。你传给函数的输入部分叫做参数。一些函数还会返回结果。在这个例子中的print,它所做的就是把参数作为字符串输出到控制台。

模拟器 vs 控制台

为什么“Hello World”只是显示在控制台窗口,而不是模拟器窗口中呢?那是因为print就是被设计为向控制台输出信息。它的目标就是输出关于你的程序发生了什么事的诊断信息。通常,控制台窗口让你可以,观察由模拟器造成的警告和错误信息,或者打印你自己要的信息。

在模拟上显示Hello World

为了让字符串显示在模拟器的屏幕上,我们需要使用来自Corona图形库的不同函数。库就是一些有用且功能相关的函数集合。为了在模拟器上显示“Hello World”,你需要添加下面两行:

local textObject = display.newText( "Hello World!", 50, 50, nil, 24 )

textObject:setTextColor( 255,255,255 )

让我们解释一下,display库中的一个函数newText返回了一个对象,这个对象表示显示在屏幕上的文本。

进一步说,在这个例子中,你可以认为newText属于display库。这种关系就是众所周知的属性关系。所以如果要访问display的newText属性,你必须用点。因此,你应该写成“display.newText”而不是“newText”。

setTextColor函数是一个对象方法。它使用一个着色的语法,表示它和你创建出来的text对象相关。在这个例子中,text对象默认是没有颜色的,所以我们需要赋于它RGB通道值。这些数字的范围在0-255之间,换句话说,我们每个通道需要255个值。

快速原型

关于Corona SDK一个最重要的事情,是它能够快速修改,并且立刻看到修改后的效果。

让我们回到前面的例子种,看看它如何工作。你也可以使用例子代码中的“HelloWorld”工程。启动模拟器,选择你的程序所在的文件夹,然后点击open。

现在用你的文本编辑器打开main.lua文件,试着修改setTextColor的三个参数。例如下面这样:

local textObject = display.newText( "Hello World!", 50, 50, nil, 24 )

textObject:setTextColor( 255, 0, 0 )

现在,保存这个文件,然后回到模拟器。在文件菜单, (File > Relaunch) 或者用快捷键 ?R (command-R)。这将会重新加载你的main.lua文件,而无需重启模拟器。注意,文本的颜色发生了什么样的改变。上面这个版本,文本应该变成红色了。

当你开发你的应用程序时,你将会发现你经常做这类事。你将会在启动器中加载你的app,然后对你的main.lua文件做些修改,再切换回到模拟器,重新加载运行你的代码来看看结果。这使得修改和查看结果变得容易多了,从而减少了因为重启模拟器耽误的时间和造成的麻烦。

基本交互

让我们创建一个按钮,来增加一些交互性。例如点击按钮随机修改文本的颜色。在你的“HelloWorld”工程中,在你的main.lua中添加下面行,来加载一个图片:

local button = display.newImage( "button.png" )

button.x = display.contentWidth / 2

button.y = display.contentHeight - 50

这会加载一个叫做button.png的图片,并且放置在屏幕底部中心位置。它使用display另一个函数(display.newImage)。这个函数会返回一个image对象,我们将它保存在button变量中。我们可以叫这个变量任何名字,但是button这个名字看起来更加自然,因为我们将会把这个image看作一个button。

这个image对象有一些我们可以修改的内置属性,如图片中心在屏幕的x,y坐标(相对于屏幕的左上角)。

为了获得屏幕底部的位置,我们使用屏幕的显示属性display.contentWidth和display.contentHeight来帮助我们确定image的位置。

为了让image变成一个实际的按钮,我们需要给它增加一些事件。例如,我们将会让image负责“tap”事件(有点类似桌面电脑中的鼠标单击)。当你添加下面这些行到main.lua底部以后,你就可以点击图片,来改变文本的颜色。

function button:tap( event )

local r = math.random( 0, 255 )

local g = math.random( 0, 255 )

local b = math.random( 0, 255 )



textObject:setTextColor( r, g, b )

end

button:addEventListener( "tap", button )

让我们看看它如何工作。上面这段代码分成两个部分。第一部分为image对象按钮定义个了一个对象监听器。一个对象监听器(通常也叫table listener)就是一个对象方法,其名称和事件名称相匹配。在这个例子中,我们的方法为tap。冒号表示对象方法的语法定义。

第二个部分为我们注册对象监听器来接收“tap”事件。幸运的是,image对象按钮(象display库创建的所有对象一样),都有一个内置的方法addEventListener。允许我们创建一些交互。因为它是对象方法,image对象变量button出现在冒号的左边,而对象方法addEventListener在右边。第一个参数是事件的名称,而第二个参数是image对象本身。

当用户轻击图片,系统发现一个对象监听器被注册。在对象中查找名叫tap的方法,并调用之。在我们的tap对象方法的实现中,我们生成3个随机数(0-255)并用他们生成新的文本颜色。

动画和声音

让我们在每次用户轻击按钮的时候,产生一些动画和添加一些声音进去。用“HelloWorld2”项目开始,并添加下面行到main.lua中去,一边文本能够垂直向下移动100像素:

transition.to( textObject, { time=1000, y=textObject.y+100 } )

这里,我们使用transition库。 (see Animation).

我们添加一些声音,把代码加入tap方法内:

function button:tap( event )

local r = math.random( 0, 255 )

local g = math.random( 0, 255 )

local b = math.random( 0, 255 )

textObject:setTextColor( r, g, b )

media.playEventSound( “beep.caf” )

end

button:addEventListener( “tap”, button )

我们需要media库来提供多媒体支持。

就这么简单

以上就是Corona的快速入门了。还有更多可以探索的东西,比如加速计、获取GPS信息、启用基于位置的服务,在数据库中存储数据,等等等等。

希望你已经尝到Corona开发酷炫应用和游戏的甜头。如果你想要了解更多,可以去 Overview 。

或者如果你喜欢阅读图书,check the book list 可以在线或者本地,去购买有关的书籍。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:47:50  更:2022-01-17 11:49:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:23:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码