Как добавить Water Skimming в Sonic 1 — различия между версиями
NeKit (обсуждение | вклад) |
NeKit (обсуждение | вклад) (The servers are the seven Chaos. Chaos is power, power is enriched by the heart. The controller serves to unify the chaos.) |
||
Строка 39: | Строка 39: | ||
Только чтобы заставить Соника прыгать по воде, надо, разогнавшись, свернуться в клубочек у самого обрыва перед водной поверхностью. Обычным прыжком в воду ты ничего не добьёшься. | Только чтобы заставить Соника прыгать по воде, надо, разогнавшись, свернуться в клубочек у самого обрыва перед водной поверхностью. Обычным прыжком в воду ты ничего не добьёшься. | ||
+ | [[Категория:Как сделать...]] |
Версия 20:09, 15 апреля 2010
Water Skimming — это способность Соника прыгать по поверхности воды, будучи свернутым в клубочек, если он развил достаточную скорость. Такая приятная способность была добавлена в восьмибитный Sonic 2, в Sonic 3 была похожая способность, но она заключалась в беге по воде.
А добавить такую способность довольно легко. Найди суброутину Obj_MdJump2, она должна выглядеть примерно так:
<asm> Obj01_MdJump2: ; XREF: Obj01_Modes bsr.w Sonic_JumpHeight bsr.w Sonic_ChgJumpDir bsr.w Sonic_LevelBound jsr ObjectFall btst #6,$22(a0) beq.s loc_12EA6 subi.w #$28,$12(a0) </asm>
Дополни ее следующим кодом:
<asm> move.w $10(a0),d0 cmp.w #0,d0 bgt.s Obj01_MdJump2_Abs neg.w d0
Obj01_MdJump2_Abs: cmp.w #$250,d0 ; if Sonic speed less than $250? blt.s loc_12EA6 ; if yes, branch move.w $C(a0),d0 sub.w ($FFFFF646).w,d0 cmp.w #$F,d0 bgt.s loc_12EA6 subi.w #$90,$12(a0) ; jump out of water </asm>
Теперь скомпилируй РОМ и посмотри новую способность в действии. Самое удачное место для прыжков по воде — это огромная открытая местность в LZ1, почти в самом начале уровня. С помощью прыжков по поверхности воды ты сможешь добраться до противоположной стороны и пройти уровень коротким путем. Раньше это сделать было крайне трудно.
Только чтобы заставить Соника прыгать по воде, надо, разогнавшись, свернуться в клубочек у самого обрыва перед водной поверхностью. Обычным прыжком в воду ты ничего не добьёшься.