多语言展示
当前在线:1204今日阅读:11今日分享:19

Corona 2D游戏引擎上手指南教程

Corona是一个跨平台框架,非常适合为移动设备和台式机系统快速创建应用程序和游戏。这意味着您可以一次创建项目,然后将其发布到多种类型的设备上,包括Apple iPhone和iPad,Android手机和平板电脑,Amazon Fire,Mac Desktop,Windows Desktop,甚至是连接的电视,例如Apple TV,Fire TV和Android TV。经笔者确认,当前Corona SDK还不能发布Windows Store(UWP)应用,在Windows平台上,可以发布Win32 应用。本文根据自身上手Corona SDK制作的一片经验,希望能为君所用。
工具/原料

corona SDK (本文使用corona simulator 2018.3326)版本

方法/步骤
1

从官方网站下载最新的Corona SDK,双击直接安装直到结束。打开主程序,可以看到,将自动打开两个窗口,一个是Corona simulator(模拟器),用于渲染游戏,另一个是console窗口,用于打印一些后台执行的日志信息。

2

点击“New project”新建一个工程,按照默认设置,新建一个空白的工程。点击“OK”按钮后,会自动创建工作目录,并自动生成一些文件,如图所示。同时,“corona simulator”会出现一个虚拟的手机(我的是模拟的iPhoneX),这个手机型号可以改的,方法是,点菜单“View”->'View as'更改。方向可以点击菜单“Hardware”->'Rotate X..'更改。

3

我这里找了3张官方的入门示例中的图片文件,分别为background.png,balloon.png和platform.png文件, 将此图片文件放到生成的工程目录中,并且用文本编辑器打开main.lua文件,键入如下代码:local background = display.newImageRect('background.png',360,570)保存后,切换到模拟器,此窗口会弹出提示,需要刷新窗口,如果没有意外的话,就可以看到模拟其中显示出背景文件。

4

Corona 默认会将加载的图片从坐标位置(0,0)开始显示,导致360*570大小的图片在手机屏幕上部分显示,继续编辑main.lua文件,加入以下两行代码:local background = display.newImageRect( 'background.png', 360, 570 )background.x = display.contentCenterXbackground.y = display.contentCenterY 这两行代码的意思是将图片居中显示,再次保存,刷新窗口,可以看到图片满屏显示了。

5

在main.lua中继续添加代码:local platform = display.newImageRect('platform.png',300,50)platform.x = display.contentCenterXplatform.y = display.contentHeight-25 模拟器窗口中靠近底部25像素的地方,居中显示黑色的平台方块。 通过这段代码,可以知道Corona的坐标系统是从左至右,从上大下的。 另外display的newImageRect方法的第一个参数是工程目录下的图片文件名称,后面的两个参数分辨是图片的尺寸大小。

6

继续添加以下的代码,将气球显示到屏幕中,方法如上,但是多添加了一行设置图片透明度的代码。local balloon = display.newImageRect('balloon.png',112,112)balloon.x= display.contentCenterXballoon.y= display.contentCenterYballoon.alpha=0.8重新刷新窗口,可看到80%透明度的小气球显示到了屏幕的中央。

7

添加物理。继续添加以下两行代码,加入物理引擎,并启动。(Corona 使用的是Box2D物理引擎,根据lua语言的规则,首先引用库,使用require ,通常将这些放到文件的顶部好一些,但是放到文件中也未尝不可)。local physics = require ('physics')physics.start() 将platform和balloon两张图片赋予刚体属性, Corona使用的函数名称叫做addBody,意为给物理世界添加了有质量/生命的东西, static针对静止不动的,dynamic针对的是可以活动的, 对于ballon,除了赋予dynamic属性,还同时指定了碰撞的半径和弹力, 这个半径刚好是小球的半径,bounce(弹力)>1的话,落下后再次弹起,会高于原先下落前的高度。physics.addBody(platform,'static')physics.addBody(balloon,'dynamic',{radius=50,bounce=0.6})保存代码后,再次刷新(Ctrl+R),可以看到小气球受到重力影响下落到地面,又受到弹力影响,向上弹起,直到静止。

推荐信息