Сайт Влада

Как добавить Water Skimming

Автор гида: vladikcomper

Water Skimming — это способность Соника прыгать по поверхности воды, будучи свернутым в клубочек, если он развил достаточную скорость. Такая приятная способность была добавлена в восьмибитный Sonic 2, в Sonic 3 была похожая способность, но она заключалась в беге по воде.

А добавить такую способность довольно легко. Найдите суброутину Obj_MdJump2, она должна выглядеть примерно так:

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)

Дополните ее следующим кодом:

		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

Теперь скомпилируйте РОМ и посмотрите новую способность в действии. Самое удачное место для прыжков по воде — это огромная открытая местность в LZ1, почти в самом начале уровня. С помощью прыжков по поверхности воды вы сможете добраться до противоположной стороны и пройти уровень коротким путем. Раньше это сделать было крайне трудно.

Только чтобы заставить соника прыгать по воде, надо, разогнавшись, свернуться в клубочек у самого обрыва перед водной поверхностью. Обычным прыжком в воду вы ничего не добьетесь.