kendy 发表于 2006-2-9 15:49:06

[原创]限时点击进入不同分支的教程(附bar的解释)

第一次写教程,不好请多多指教:)
我也不知这个功能怎么形容,大概是在规定的时间内,根据玩家是否按键,来判断进入不同的分支,就像《仙剑3》与花楹的有关好感度的对话一样。
这里主要利用trap功能,可以侦测到按键动作,从而跳到相应的分支。
范例如下:

*define
clickstr "”。!?…",2
effect 10,10,1000
game

*start
随后,她再次走向了大海。
面对着她的背影,我最后问道。
“你现在希望我拉住你吗_?”
“你说呢?”\

trap *egending
lsp 0,":s#ffffff等等!",10,152
lsp 1,":s#ffffff剩时:",10,185
;从1-100共100步,每步20毫秒,共等待2000毫秒(2秒)
for %0=0 to 100 step 1
mov %1,100-%0
bar 0,%0,140,180,300,30,100,#ff0000
prnum 0,%1,70,185,20,20,#ffffff
wait 20
print 1
next
trap off

;以下可使文字及bar淡出
csp -1
bar 0,0,80,200,300,30,100,#ff0000
prnum 0,%0,10,205,0,0,#ffffff
print 10
barclear
prnumclear
repaint
“呵呵,我也不知道_…”
从前停下的脚步,现在再也没停下来…
所以,我想,这就是她的回答吧…
“那么…再见_…”
于是,我们960千米的旅程结束了…
—原版 Narcissu结局—\
end

*egending
csp -1
barclear
prnumclear
;直接用repaint只能使bar瞬间消失
repaint
“等等_!”
她在波浪中面对着我停下了脚步。
我拉住她,冰冷的海浪拍打在我们身上…
我们紧抱着,共同迈向了另一个新的世界…
—eg Narcissu结局 Kendy—\
end

主要语句:
trap *egending : 在执行 trap...trap off 之间的语句时,若有按键动作发生,则终止trap..trap off之间的程序的执行,并跳入*egending标签执行。
若在执行 trap...trap off 之间的语句时无按键事件发生,则继续往下执行。

另外,用了for..next来显示进度条动画,其中bar 语句是建立进度条(血槽也可)的,语法如下:
bar bar的编号(从1-99),bar的现在值,bar的左上角x坐标,bar的左上角y坐标,bar的宽,高,bar的最大值,颜色(16进数字)

而prnum是用来建立bar数值标签的。除了无最大值外,其余与bar的参数意思相同。
要使bar及其数标签显示出来,要用print语句。

当然,barclear,prnumclear是用来消除bar和bar数值标签的了。消除完后,还要用repaint命令重绘。
要想bar消失时有过渡效果,要重设prnum的现在值,宽,高为零,bar的现在值为0,再用print来设置效果,接着才barclear,prnumclear,repaint。

CountD 发表于 2006-2-9 16:29:19

http://bbs.rpgchina.com/read.php?tid=12555&fpage=1

kendy 发表于 2006-2-9 16:37:50

哦,谢谢版主,那篇我看过了,很好。不过我说的这种是不用点击任何选项的,只是用于测试人的瞬时反映的那种而已,所以功能没那么强,代码也较少:)……

lovesakura 发表于 2006-2-10 15:15:31

不过我觉得这篇更能说明些问题。
这篇更好些。建议加到精品区去。

CountD 发表于 2006-2-10 17:41:27

应该说这篇比较容易看懂,而toz那篇是进阶的.而且原理也有点不太一样... 倒是我没仔细看了...
页: [1]
查看完整版本: [原创]限时点击进入不同分支的教程(附bar的解释)