2012-04-17 42 views
1

我正在使用Flare3D在Flash中製作3D遊戲,並且我有一條由長直線部分和短彎曲部分的軌道組成的軌道。玩家可以自由地駕駛他們的賽車,但我需要能夠防止他們掉頭向後滑行。如何防止用戶在3D遊戲中繞過交通車輛

有關如何完成此任務的任何想法?

+0

你如何建立你的軌道? – nycynik 2012-04-18 00:01:02

+0

軌道是在3D studio max中創建的非重複的城市環境。玩家從一端跑到另一端,而不是圈。 – 2012-04-18 00:40:52

回答

4

不知AS3語法,但一般的想法是定義行進方向每個段(至少直線段)和可接受的偏差。然後,如果玩家的方向超出偏差範圍,那麼您可以將其返回,或讓他們墜毀或任何您想要的東西。

例如:

直線段是30度。偏差是+ -20。在開始踢屁股之前,用戶的方向可以從10到50度。

2

一種方式做到這一點,是段軌道,併爲軌道的每個部分都有它面臨的(就像噓說的)一個方向,當軌道朝北,那就是0/360,然後在該點在軌道段將是0。他們所做的第一扣後,可以說這是一個90到右側,然後在該點上軌道將有90

一旦你有一個值足夠的細分市場,他們都有指導,那麼你可以做的就是展望未來。因此,如果它們位於細分市場10上,請查看細分市場11,並將該細分市場價值用作噓聲指向的範圍(+/- 20度)。這可以解決你在輪到他們時遇到的任何問題,讓他們轉彎轉彎,但仍然能夠崩潰。

這假定您跟蹤他們當前所在的細分受衆羣,並且前面只有一個細分受衆羣。如果曲目有選擇,您可能必須採用它。

此外,

如果他們試圖把車子慢慢靠近,我會用噓聲同意。檢查汽車在道路上的角度,只允許進行如此多的改變,可能會增加一個聲音,強制他們轉動車輪,直到它將要去,以便他們明白爲什麼它不再轉彎。

如果他們在嘗試時移動得很快,我會添加一個碰撞動畫,然後將他們的車重新設置回正軌。用戶會學會避免面對錯誤的方式,因爲它會在你遇到時崩潰。

+0

我同意你和@Boo所說的原則:找出他們應該轉多遠,並確保他們不會變得更遠。但我完全不清楚如何去做。該賽道沒有固定的分段。我需要一種以某種方式輪詢世界的方法,可能使用法線或碰撞數據來導出一個角度。 – 2012-04-17 23:56:15

+0

我假設你有你的車在世界座標,你有一個向量表示汽車的方向。該矢量也需要轉換爲世界座標。有了這些零件,您應該能夠隨時確定汽車前進的方向。你還必須製作路段地圖(可能會簡化爲2d,除非道路重疊)。有了這個,你需要弄清楚你的哪個部分。這就是它的工作原理。我不認爲有任何簡單的方法會對賽道做出反應以確定方向。 – nycynik 2012-04-18 01:06:19