求助: 关于animation end 事件
gamemaker吧
全部回复
仅看楼主
level 1
Demony
楼主
为什么我用animation end事件来 控制一个sprite播放完了以后开始播放另一个sprite的时候
在向后面的sprite转换之前,会多余的出现前一个sprite的第一帧呢?
望高手指教
代码如下:
EVENT: Animation End
CODE:
if sprite_index = stopMove
{
sprite_index = stand
}
2011年07月28日 11点07分
1
level 11
franniss
括号里加个播放速度为0,指定一下子图,再恢复播放,应该能解决了。
想听原理再加新手群。
2011年07月28日 11点07分
3
level 1
Demony
楼主
哇,感谢franniss 的回答,然而问题似乎没有解决
以下是修正后的代码:
if sprite_index = stopMove
{
image_speed = 0
sprite_index = stand
image_index = 0
image_speed = img_speed
}
不知道有没有打错,事实上同样处理的还有其他的动作,而有问题得只有个别两个,
实在是很困扰啊。
2011年07月28日 12点07分
4
level 7
冰凌血翼origin
animation end一定会多放子图- -SO放弃这个event吧
2011年07月30日 07点07分
5
level 11
franniss
你两个动画都有多少子图等信息都没说阿。
可以加群上传一个我看看。
2011年07月30日 09点07分
6
level 7
冰凌血翼origin
animation实际上是放完所有子图之后- -再放一帧第0子图- -此时才会触发……
2011年07月30日 12点07分
7
level 8
SZEROX
我印象中,在不使用draw事件的情况下,Animation End事件是可以做到视觉上正常播放到最后一个子图而不会切回去的,但是如果有使用draw事件就会切回去一个子图。
2011年07月30日 14点07分
8
level 11
franniss
这个确实是事件顺序问题。
2011年07月30日 15点07分
9
level 8
SZEROX
所以用draw事件的时候我一直都是自开的变量代替Animation End的判断~
2011年07月30日 16点07分
10
level 6
Relliks
if sprite_index = stopMove
{
image_speed = 0
sprite_index = stand
image_index = 0
image_speed = img_speed
}
这段代码这样写可以吗?第一行的sprite_index = stopMove,中间应该用两个等号吧?
2011年08月01日 14点08分
11
level 8
SZEROX
可以。GM在这一部分上的判断不严格。
if 内的 =也作为==处理。
2011年08月01日 14点08分
12
level 1
40743
一直以为只能用==呢……
2011年08月02日 00点08分
13
level 1
Demony
楼主
抱歉这么长时间才回复大家,
其实正如血色冰凌说说的,我多加了几帧以后,确实就运行正常了。
灰常
灰常
灰常的感谢大家耐心的回答。
2011年08月05日 12点08分
14
1