还有一个命令与音乐文件的命令类似,侦测声音是否正在播放。命令如下:
代码:
voice:playing()
还有一些声音和音乐方面的命令等待你去探究,但是这些已足够你使用声音和音乐了。
现在我们开始做一个小玩意儿。我们将以一个菜单屏幕为起始,用来选择蓝色还是黑色背景。按下 X 时程序会往下执行,而背景色已按照我们的选择设好。此处我们的程序将显示其已被执行多少次。怎么做?嗯,就是每次在菜单屏幕按下 X 时程序就打开一个文件(我们稍后会创建),然后写一个数字进文件。程序也会从该文件中读取该数字并保存在一个变量中。如果你完全退出程序然后再返回,它仍然能显示被执行了多少次,因为这个数据已存在一个文件里了。那么,让我们忙起来吧。
首先,我想要你用notepad或任何其他编辑器创建一个普通的txt文件。在该文本文件中输入数字 0。保存为 counter.txt。就是一个普通的文本文件。
然后开始编写我们的 lua 文件。先创建一些要用到的色彩对象:
代码:
white = Color.new(255,255,255)
blue = Color.new(0,0,255)
black = Color.new(0,0,0)
接着是一些变量。
代码:
oldpad = Controls.read()
startcolor = black
gamestate = "menu"
oldpad 将储存我们上一次按下的按键。
startcolor 存储我们稍后将在程序第二部分使用的颜色。我们以 black 开始。
gamestate 则是用来查看该使用哪个函数。我们将创建两个函数。一个是显示菜单的,另一个执行程序余下的工作。既然我们从菜单开始,该变量的起始值就如此设置。
下一部分就要处理声音了!首先,请下载两个小小的 WAV 文件,放在程序所在目录下。
现在让我们在程序中载入这些 wav 文件。我们不想让它们循环,所以使用 false。
代码:
menusound = Sound.load("beep.wav",false)
goodbye = Sound.load("goodbye.wav",false)
够简单吧!还记得上一讲的那些文件命令吗?我们来次回顾吧。此处我们将打开我们之前创建的 counter.txt 文件,并从中读取数值存入变量 counter 中。
代码:
file = io.open("counter.txt", "r")
counter = file:read("*n")
file:close()
请注意我们使用了"*n"以读入一个数字。
接着我们将创建一个数据表,用于我们的起始屏幕选择器。这会包含一个我们创建来用作选择器的图像,以及它的 x 和 y 坐标值。数据表下一行的命令则将我们的选择器图像以蓝色清空。代码如下:
代码:
selector = { image = Image.createEmpty(145,15), x = 147,y = 77 }
selector.image:clear(blue)
现在我们建一个称为 drawMenu() 的函数,执行菜单所有的必要任务。下面是起始行:
代码:
function drawMenu()
我们将把此函数用作一个循环函数,所以每次循环我们先清屏然后读取按键的输入。代码如下:
代码:
screen:clear()
pad = Controls.read()
接下来我们将把我们的选择器绘制(blit)到屏幕上,并打印两行字。代码如下:
代码:
screen:blit(selector.x,selector.y,selector.image)