mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 03:52:12 +00:00
prevent illegal moves onto safe tiles
This commit is contained in:
@@ -27,6 +27,15 @@ SPLASH_USE_FOREGROUND equ 0
|
||||
|
||||
PATHWAY_FADE_TIMER_COUNT equ 100
|
||||
|
||||
PATHWAY_CONFIG_FREE equ 0
|
||||
PATHWAY_CONFIG_HORIZONTAL equ 1
|
||||
PATHWAY_CONFIG_VERTICAL equ 2
|
||||
PATHWAY_CONFIG_TOP_LEFT equ 3
|
||||
PATHWAY_CONFIG_TOP_RIGHT equ 4
|
||||
PATHWAY_CONFIG_BOT_LEFT equ 5
|
||||
PATHWAY_CONFIG_BOT_RIGHT equ 6
|
||||
|
||||
|
||||
FOREGROUND_DELAY_BIT equ 0
|
||||
FOREGROUND_SCROLL_SHIFT_CONVERT equ 4
|
||||
FOREGROUND_SCROLL_TILE_INDEX_CONVERT equ 3
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
</layer>
|
||||
<layer name="pathway" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA==
|
||||
eJztVDsOwjAMtYdOPUGmnoCp9z8AU0/A1BMwsUKErD4eTpq0RSCRJ1WW8vF7z44r0vAvGFXkpK+xYR+mx3c9OGevS+7Yp1vF3RItZ1newCeBPEd7MHD9O33WD7n3vvNO/YgajIe1cy89LT2tcX6E+fJqdMnsMU+Ow7sXea2Hk3PGvAWoP3Kxx4hZts2O5eJoCPp+FrVgNOCs8R76xzp4mnJ6jcPTOUv5PMY+D5r2kjqPelJ3tvRkbT5Yy+j4HhJ9Yu24hpHnyta8mSutm4fcHKe8rMHz6OUt/Wezjpq39Q3U1g3rEX7YV8M67n5mN/0=
|
||||
</data>
|
||||
</layer>
|
||||
<layer name="items" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlVsOgyAQRWVp1arYh5Ko+9+KmpSEUuYpNX54PvHOneFOgkVxcSZKI6+5MWuckfXwuodiJsrzKHL02/LFMq7Mt1bjH3p0hMdz552qDJloPTh1I6HxGaeynsyv1uvugO8LOIf0Mdi+4nkkQHNp4dxHm4Vdv9efrG2gdcg+HLJHiJqhDXty9G9CMx/8ZknY7hfPT+VpGTuR0BA1Gs8c/fvEOTUrRspP6yn9T0gzbBH9v/exl+Hk813kYwFAERLp
|
||||
eJztlV0OgyAQhOFo1tpSqy1J2/tfRUlKshJhf0DCg98jzs4uswkqddISF82v6Yg1VvN6eN0omAnzrEWJfi7fVMa93mol/tDjgXg8M+/UF8hE6kGp+yAanzEla7i7a0Q/Rc5j+pDUvr4ZWcfmkkK5jzQLs34f/lkboLVBHdyHZezRMxC0sCdFPyOaX+U3i4O7Xzg/lqch7ITDDamReJbo/9o5x2ZNsecn9eT+J7gZ3hP6o/eRy7vx+U7KsQCydRKU
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
</tileset>
|
||||
<layer name="foreground" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1FdPZ33k+AEWH5TE9Wg6p03+wJfulpOZDuidB8iVI9d/1HYnNfLHqBz1yo2hWH/QIp0PFjlYfEgz4G6D0UJuMLYxB5McAAccW5U=
|
||||
eJxjZ2BgsGLEjtlH5eguZwektwKxGBAzodF2WMSIlcNnZiUN7BvqcpbQeNHCIQ+iB5vcbjL11dNZHzl+gMUHJXE9ms7pnz+Wk5kO6J0HyJUj13/Udic18seoHPXKDeT8Qe88MJjS+WCRg8WHNAPuNhgt5AZjG3MwyQEAaJtcNA==
|
||||
</data>
|
||||
</layer>
|
||||
<layer name="pathway" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA==
|
||||
eJztVEEOgkAMbA+ceAEnXuCJ/z/AEy/wxAs8edXGNNSxLQti3EQmMTVbaGc6W4gO1IiBiU78Gmus+Q8YH7+rEwn+74WW59ri023FuyVczjTfgW/C9tlTQ8PPGWG0Odv703vesB8V6pP0Qe7opcelhTOsb6G6vBldkhz2yXp470lf9XB08p4nthdqFEy0bXe0FkZFx+/PWi42KuyuYc7qt3PwOGV8tYfHc6LyfRSfe461ZPuhfCL/t3iytB/IfXB094FPqhVryJmNuFd65u1cCc8I2R5HWiLOmIugdUu/2chjzd36BbK5Zc/LPLqKdR1Yxh1ayD2g
|
||||
</data>
|
||||
</layer>
|
||||
<layer name="items" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlVsOgyAQRWVp1arYh5Ko+9+KmpSEUuYpNX54PvHOneFOgkVxcSZKI6+5MWuckfXwuodiJsrzKHL02/LFMq7Mt1bjH3p0hMdz552qDJloPTh1I6HxGaeynsyv1uvugO8LOIf0Mdi+4nkkQHNp4dxHm4Vdv9efrG2gdcg+HLJHiJqhDXty9G9CMx/8ZknY7hfPT+VpGTuR0BA1Gs8c/fvEOTUrRspP6yn9T0gzbBH9v/exl+Hk813kYwFAERLp
|
||||
eJztlVkOgzAMRMnRgFIoSxup0PsfpUUiUhrilYD44H2G8dgZSyHLLs5EYeQ1ObPGGlkPp2sVM1GeR5Gi35wvlnFp/rUaf9/jQXh0G+9UJshE68GpexMal3Es69GstU53A3x74BzSh2D7CueRAM2lhXMfbRbN73u1ZN14WovswyJ7hKgYWr8nRz8QmungN0vCfL9w/g9jVz6xnUi4EzUazxT9n5FzalaMmJ/WU/qfkGZYI/q997GV18nnu0jHF6ItEv4=
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
||||
|
||||
@@ -100,6 +100,16 @@ ItemControl: macro
|
||||
|
||||
|
||||
PlayerMoveRight: macro
|
||||
cmp.w #PATHWAY_CONFIG_VERTICAL,pathwayLastConfig
|
||||
beq .\@miss
|
||||
cmp.w #PATHWAY_CONFIG_TOP_LEFT,pathwayLastConfig
|
||||
beq .\@miss
|
||||
cmp.w #PATHWAY_CONFIG_BOT_LEFT,pathwayLastConfig
|
||||
beq .\@miss
|
||||
bra .\@ok
|
||||
.\@miss:
|
||||
move.w #1,pathwayMissPending
|
||||
.\@ok:
|
||||
move.w playerJumpPixels,d1
|
||||
add.w playerPausePixels,d1
|
||||
move.w d1,spriteR
|
||||
@@ -124,6 +134,16 @@ PlayerMoveDown: macro
|
||||
endm
|
||||
|
||||
PlayerMoveLeft: macro
|
||||
cmp.w #PATHWAY_CONFIG_VERTICAL,pathwayLastConfig
|
||||
beq .\@miss
|
||||
cmp.w #PATHWAY_CONFIG_TOP_RIGHT,pathwayLastConfig
|
||||
beq .\@miss
|
||||
cmp.w #PATHWAY_CONFIG_BOT_RIGHT,pathwayLastConfig
|
||||
beq .\@miss
|
||||
bra .\@ok
|
||||
.\@miss:
|
||||
move.w #1,pathwayMissPending
|
||||
.\@ok:
|
||||
move.w playerJumpPixels,d1
|
||||
add.w playerPausePixels,d1
|
||||
move.w d1,spriteL
|
||||
|
||||
+1
-2
@@ -6,9 +6,8 @@
|
||||
RenderPathway:
|
||||
move.l pathwayPlayerTileAddress,d5
|
||||
andi.w #$fff0,d5 ; point the address to the last tile of the previous column
|
||||
addq #2,d5 ;
|
||||
move.l d5,a4
|
||||
move.w #1,d5
|
||||
move.w #0,d5
|
||||
.loopX:
|
||||
move.w #6,d6 ; y index
|
||||
move.w #0,d7 ; number of rows without a pathway
|
||||
|
||||
+20
-1
@@ -29,6 +29,9 @@ ResetPlayer:
|
||||
add.l #6*PLAYER_SPRITE_VERTICAL_BYTES,d0
|
||||
move.l d0,currentSprite
|
||||
|
||||
move.w #PATHWAY_CONFIG_FREE,pathwayLastConfig
|
||||
move.w #0,pathwayMissPending
|
||||
|
||||
bsr SpriteDisableAuto
|
||||
move.w #0,spritePlayerFallingAnimation
|
||||
move.w #PLAYER_INITIAL_X,spriteX
|
||||
@@ -286,6 +289,11 @@ CheckPlayerMiss:
|
||||
rts
|
||||
|
||||
.check:
|
||||
cmp.w #1,pathwayMissPending
|
||||
beq .doBigBang
|
||||
|
||||
move.w #PATHWAY_CONFIG_FREE,pathwayLastConfig
|
||||
|
||||
move.l pathwayMapPtr,a2
|
||||
move.l foregroundMapPtr,a3
|
||||
|
||||
@@ -488,36 +496,42 @@ CheckDirection:
|
||||
jmp BigBang
|
||||
|
||||
.horizontal:
|
||||
move.w #PATHWAY_CONFIG_HORIZONTAL,pathwayLastConfig
|
||||
cmp.w spriteR,d1
|
||||
beq .ok
|
||||
cmp.w spriteL,d1
|
||||
beq .ok
|
||||
jmp BigBang
|
||||
.vertical:
|
||||
move.w #PATHWAY_CONFIG_VERTICAL,pathwayLastConfig
|
||||
cmp.w spriteU,d1
|
||||
beq .ok
|
||||
cmp.w spriteD,d1
|
||||
beq .ok
|
||||
jmp BigBang
|
||||
.topLeft:
|
||||
move.w #PATHWAY_CONFIG_TOP_LEFT,pathwayLastConfig
|
||||
cmp.w spriteR,d1
|
||||
beq .ok
|
||||
cmp.w spriteD,d1
|
||||
beq .ok
|
||||
jmp BigBang
|
||||
.topRight:
|
||||
move.w #PATHWAY_CONFIG_TOP_RIGHT,pathwayLastConfig
|
||||
cmp.w spriteD,d1
|
||||
beq .ok
|
||||
cmp.w spriteL,d1
|
||||
beq .ok
|
||||
jmp BigBang
|
||||
.rightBottom:
|
||||
move.w #PATHWAY_CONFIG_BOT_RIGHT,pathwayLastConfig
|
||||
cmp.w spriteU,d1
|
||||
beq .ok
|
||||
cmp.w spriteL,d1
|
||||
beq .ok
|
||||
jmp BigBang
|
||||
.leftBottom:
|
||||
move.w #PATHWAY_CONFIG_BOT_LEFT,pathwayLastConfig
|
||||
cmp.w spriteR,d1
|
||||
beq .ok
|
||||
cmp.w spriteU,d1
|
||||
@@ -595,4 +609,9 @@ playerJumpPixels:
|
||||
playerPausePixels
|
||||
dc.w PLAYER_PAUSE_PIXELS
|
||||
playerMissPixels
|
||||
dc.w PLAYER_CHECK_MISS_PIXELS
|
||||
dc.w PLAYER_CHECK_MISS_PIXELS
|
||||
pathwayLastConfig:
|
||||
dc.w PATHWAY_CONFIG_FREE
|
||||
pathwayMissPending:
|
||||
dc.w 0
|
||||
|
||||
Reference in New Issue
Block a user