一个小女生的LUA游戏开发日志(2)对话测试



掌叔
2009-01-19 10:39:18

摘自:[url]http://371397938.qzone.qq.com/[/url]
作者:×ㄨ┆花苼糖

- -~~挺晚了~但今天事情今天做,还是得写上来,
今天认识了一位朋友,愿意一块参加 很高兴,而且他是做美术的哦。^_^
感谢他的支持和鼓励!对了~他还要为这个游戏写剧本。那可就是原创咯!!那他也得加油呀!
言归正传:
今天研究的是对话系统,照旧,先看函数
[code=lua]
1.function my.Dialogbox(x,y,name,str,visible)
if visible == 1 then
my.print(x,y,my.dialogboximg)
zhPrint(x+20,y+5,name,screen)
zhPrint(x+18,y+25,str,screen)
end
end
[/code]
这是对话框函数。首先my.dialogboximg 已经是加载好的图片数据变量
这个:

[attach]628[/attach]

(挺难看的,太晚了嘛,再加上我是PS小菜鸟,2分钟做一个测试咯!)
函数解释 my.Dialogbox(对话框显示X坐标,有坐标,对话框人物姓名,内容,是否可见)
EG.
[code=lua]
my.Dialogbox(15,5,"NANA","我的名字是NANA",1)
[/code]

在开一个NPC的函数的脚本(挺粗糙的! )
[code=lua]
npc[9001001]={}
npc[9001001].img={}
npc[9001001].img.stand=my.loadimg("img/NPC/9001001/eye.0.png")
npc[9001001].x=50
npc[9001001].y=200
npc[9001001].xbox=0
npc[9001001].num=0 --对话的行数
npc[9001001].str={
"我是NPC9001001,现在你正在点我!",
"我的名字是雄英",
"那时候我和别人打赌,结果我输了,所以我吧名字倒过来写了!",
"嘿嘿,没办法嘛!",
}

function npc9001001()
my.print(npc[9001001].x,npc[9001001].y,npc[9001001].img.stand)
if x0<=50+60 and x0>=50 and y0 <=279 and y0>=200 and pad:circle() and oldpad:circle() ~= pad:circle() then
npc[9001001].xbox=1
npc[9001001].num=npc[9001001].num+1
if npc[9001001].num >4 then npc[9001001].num=1 npc[9001001].xbox=0 end
end
if npc[9001001].xbox==1 then
my.Dialogbox(15,10,"9001001",npc[9001001].str[npc[9001001].num],1)
end
end
[/code]
很难读吧- -|明天考虑任何改写。代码里的X0,Y0 是模拟垫的坐标,看效果吧。 首先是进入运行

[attach]629[/attach]

FPS只能达到11 ~~真不理想,有待优化。
我们去点一下那只小熊!!

[attach]630[/attach]

在点点那个女孩!

[attach]631[/attach]

效果出来了,不过有如下缺点:
1.对话框出现后FPS下降。
分析,一位dilaogbox函数 每次循环都要加载并且显示对话框背景,消耗时间太长。
在这个程序里 类似的情况还比较多!
解决方法:需要吧一些经常使用的资源加载倒内存以后不释放。即可。


从剩余内存来看,空间是多了不少。
看来
时间换空间,空间换时间 的理念还真管用^_^
睡觉~明天 也要加油哇~~~~HOHOHOHOHO~~~加油加油!!!


love_xiaolu
2009-08-20 15:11:10

支持了,


love_xiaolu
2010-10-12 21:50:33

妹子是如何实现中文的??急求