TGE学习笔记07 - 脚本控制动画
生活随笔
收集整理的這篇文章主要介紹了
TGE学习笔记07 - 脚本控制动画
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
設想這樣一個場景,開車飛馳在公路上,突然發現前方有一個木箱,這時避讓已經來不及,只見汽車撞上木箱,木箱被撞碎飛出。
我們要做這樣的場景,至少有兩個工作要做,
1.汽車撞上木箱時,需要播放木箱撞碎的動畫;
2.動畫播放結束后,需要刪除。
以下是非常簡單的腳本:
?1datablock?StaticShapeData(Box01)
?2{
?3????category?=?"Box";
?4????shapeFile?=?"~/data/Box/Box01.dts";
?5};
?6
?7function?Box01::onCollision(%this,?%obj,?%col)
?8{
?9????echo(?"Box01::onCollision"?);
10????%obj.playThread(0,?"bomb");
11}
12
13function?Box01::onEndSequence(%this,%obj,%slot)
14{
15???echo("Sequence?Done!");
16???%obj.stopThread(%slot);
17???%obj.delete();
18}
加上以上代碼,測試一下,木箱被撞碎飛出,任務完成。
等等,。。。,發現新的問題,木箱確實飛出,但是汽車停下來了。
原來,當汽車碰上木箱后,因為碰撞而減速了,
這與常識有點差別,應該木箱撞飛,而汽車因為質量較大繼續前進。
這時我們是多么想念物理引擎啊,對于沒有物理引擎的小型游戲,我們只好用笨辦法了。
萬能的Trigger要登場了。
我們將木箱模型的碰撞體去掉,取而代之的是放上一個Trigger,
當汽車進入Trigger時,我們播放動畫,動畫播放結束被刪除。
同時,對汽車的速度做一個衰減,比如扣除10%,這個值就隨你來定了。
我們要做這樣的場景,至少有兩個工作要做,
1.汽車撞上木箱時,需要播放木箱撞碎的動畫;
2.動畫播放結束后,需要刪除。
以下是非常簡單的腳本:
?1datablock?StaticShapeData(Box01)
?2{
?3????category?=?"Box";
?4????shapeFile?=?"~/data/Box/Box01.dts";
?5};
?6
?7function?Box01::onCollision(%this,?%obj,?%col)
?8{
?9????echo(?"Box01::onCollision"?);
10????%obj.playThread(0,?"bomb");
11}
12
13function?Box01::onEndSequence(%this,%obj,%slot)
14{
15???echo("Sequence?Done!");
16???%obj.stopThread(%slot);
17???%obj.delete();
18}
加上以上代碼,測試一下,木箱被撞碎飛出,任務完成。
等等,。。。,發現新的問題,木箱確實飛出,但是汽車停下來了。
原來,當汽車碰上木箱后,因為碰撞而減速了,
這與常識有點差別,應該木箱撞飛,而汽車因為質量較大繼續前進。
這時我們是多么想念物理引擎啊,對于沒有物理引擎的小型游戲,我們只好用笨辦法了。
萬能的Trigger要登場了。
我們將木箱模型的碰撞體去掉,取而代之的是放上一個Trigger,
當汽車進入Trigger時,我們播放動畫,動畫播放結束被刪除。
同時,對汽車的速度做一個衰減,比如扣除10%,這個值就隨你來定了。
轉載于:https://www.cnblogs.com/gamesacer/archive/2008/03/27/1124715.html
總結
以上是生活随笔為你收集整理的TGE学习笔记07 - 脚本控制动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Javascript中的翻转器
- 下一篇: 3月28日,晴