作者harry901 (感情学业面包何重要?)
看板Flash
标题Re: 作类似跳舞机游戏遇到的一些问题
时间Fri Dec 12 22:45:35 2003
※ 引述《keenlong (keenlong)》之铭言:
: 就是有关判断按的准不准的问题
: 一般说来,DDR游戏按钮状况会依照准度来决定按的分数,像是good,great之类的
: 因为在下对onclipevent还不是很了解,所以想问看看这样不知可不可行
: onclipevent(enterframe){
: if(key.isdown(key.up)
: if(判断掉下来的箭头是否有碰到反应区)
: if(该箭头的_y介於100~200,不包含130~160)
: 显示good
: if(该箭头的_y介於130~160)
: 显示great
: else
: 显示bad
: }
: 不过做了一下发现似乎不太可行........想问问看这样写是否有很明显的错误???
: (大小写除外)
: 还有箭头的掉落在下是用手动XD,为了配合一下节奏,这有办法用复制movieclip来做吗???
: 恳请解惑 谢谢
: 一直上来问问题,抱歉>"<
以前作过 下面的方法给你参考看看
依照你的方式 将来在复制箭头的时候会碰到很多问题
诸如时间的搭配或是判断'个别箭头'(也就是如果同一个箭头在场景出现两次时)
会造成错误
假设主场景有两个影格,两个图层
参考范例档
http://web.cc.ntnu.edu.tw/~48970308/ddrteach.fla 先存档再开启
Layer1的图层上,有a,b两个instance,a是将被复制的影片,b是用来作为参考座标的mc
而这个图层第一与第二影格都是相同的。
Layer2(AS)的图层的第一个影格,其as如下
duplicateMovieClip("a","a"+1,11); //复制影片a,命名为a1,深度为11
setProperty("a"+1,_y,600-n); //设定a1的y为600-n
if(getProperty("a"+1,_y)<=-50){ //如果a1的y小於-50
removeMovieClip("a"+1); //a1被拿掉
}
Layer2(AS)的图层其第二个影格,其as如下
n=n+10; //变数控制而已
gotoAndPlay(1); //回圈
Layer2(AS)的图层,第一个影格中还放了一个隐藏按钮,命名为hidenutton
其as如下
on (keyPress "<Up>") { //在按下up的时候
if(Math.abs(getProperty("a"+1,_y)-b._y)<=50){ //如果a1与b的y方向距离<=50
trace("yes"); //输出"yes"
}else { //否则
trace("no"); //输出'no'
}
}
当然,你也可以只用一个影格来作这些东西,不过我个人是比较喜欢分开来作
因为有时候当影格as过多时,对於非专业的程式设计者来讲是很痛苦的一件事情。
千万不要笨笨的跟我上面的范例一样ㄟ...要能自己更改变数或增加变数的应用
例如上述的n(箭头上移速度),可以活用,例如不同的关卡有不同的速度之类的。
若要将声音考虑进去,在声音的控制方面,有一个可以取得声音播放的位置
语法为snd.position
利用这个语法取得声音位置,设定一变数跟其有关联,而这变数就可以用来控制
任何你想要控制的(如箭头的出现,或精采时候速度变快等等)
当然 这些东西不是一天两天可以做出来的,要做到这样的程度
必须要有一番功夫
以上 希望你看得懂...你应该自己会找到如何判断'great""good"等ddr特效
1F:→ keenlong:谢谢您>"<........ 推 61.225.76.80 12/12
※ 编辑: harry901 来自: 218.167.250.224 (12/13 07:47)