Посмотрел я тут на летающую тарелку в игре и возникло стойкое ощущение, что у неё тоже есть крылья, как и у птицы, которыми надо махать, чтобы взлететь. Более того, если упасть в летающей тарелке с высоты, тратится жизнь и ход, а если случайно чуток задеть стенку при полёте, тарелка прекращает работу. Очень неприятно управлять этой штукой таким образом.
Изменения:
[list]
[*] сделал компенсацию 70% гравитации
[*] убрал отключение тарелки при столкновении с землёй
[*] добавил отключение при нажатии клавиши Вниз.
[/list]
Т.к. тарелка теперь не исчезает при столкновении с землёй, у неё появляется ещё одна интересная особенность - при определённом уровне пилотажа можно скинуть врага в воду, не потеряв ход.
Патч:
[code]
--- GSHandlers.inc.orig Сб апр 3 23:38:30 2010
+++ GSHandlers.inc Сб май 1 18:04:31 2010
@@ -2736,13 +2736,13 @@
if not bShowAmmoMenu then FollowGear:= HHGear;
if ((Gear^.State and gsttmpFlag) = 0) or (HHGear^.dY < _0) then doStepHedgehogMoving(HHGear);
+if (not HHGear^.dY.isNegative) then HHGear^.dY:= HHGear^.dY - cGravity * _0_7;
if (Gear^.Health = 0)
or (HHGear^.Damage <> 0)
or CheckGearDrowning(HHGear)
or (TurnTimeLeft = 0)
- // allow brief ground touches - to be fair on this, might need another counter
- or (((GameTicks and $1FF) = 0) and (not HHGear^.dY.isNegative) and TestCollisionYwithGear(HHGear, 1))
+ or ((HHGear^.Message and gm_Down) <> 0)
or ((Gear^.Message and gm_Attack) <> 0) then
begin
with HHGear^ do
[/code]
Перевёл пост на английский как смог и разместил в англоязычной части форума: [url]http://www.hedgewars.org/node/2123[/url]