sprite animation testing
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
4 anos atrás
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. ;----------------
  2. ; Program Start
  3. ;----------------
  4. INCLUDE "src/actor.asm"
  5. SECTION "Program Start", ROM0[$150]
  6. Start:
  7. ld a, IEF_VBLANK
  8. ld [rIE], a
  9. ei
  10. xor a
  11. ld [hVBlankFlag], a
  12. call Wait_VBlank
  13. xor a
  14. ldh [rLCDC], a
  15. call Clear_Map
  16. call Clear_OAM
  17. call Load_Tiles
  18. call Load_Map
  19. ld a, %11100100
  20. ld [rBGP], a
  21. ld [rOBP0], a
  22. ld a, %11000100
  23. ld [rOBP1], a
  24. xor a
  25. ld [rSCY], a
  26. ld [rSCX], a
  27. ld [rNR52], a
  28. call CopyDMARoutine
  29. ld a, $3F
  30. ld [Player_YPos], a
  31. ld a, $3A
  32. ld [Player_XPos], a
  33. ld a, $FF
  34. ld [Player_GFXCounter], a
  35. ld a, 1
  36. ld [Player_GFXState], a
  37. xor a
  38. ld [Player_TileData], a
  39. ld a, HIGH(ActorROM)
  40. ld [Player_GFXData+1], a
  41. ld a, LOW(ActorROM)
  42. ld [Player_GFXData], a
  43. ld a, $71
  44. ld [NPC01_YPos], a
  45. ld a, $8C
  46. ld [NPC01_XPos], a
  47. ld a, 20
  48. ld [NPC01_GFXCounter], a
  49. ld a, 1
  50. ld [NPC01_GFXState], a
  51. xor a
  52. ld [NPC01_TileData], a
  53. ld a, HIGH(ActorROM)
  54. ld [NPC01_GFXData+1], a
  55. ld a, LOW(ActorROM)
  56. ld [NPC01_GFXData], a
  57. ld a, $15
  58. ld [NPC02_YPos], a
  59. ld a, $1C
  60. ld [NPC02_XPos], a
  61. ld a, 30
  62. ld [NPC02_GFXCounter], a
  63. ld a, 1
  64. ld [NPC02_GFXState], a
  65. xor a
  66. ld [NPC02_TileData], a
  67. ld a, HIGH(ActorROM)
  68. ld [NPC02_GFXData+1], a
  69. ld a, LOW(ActorROM)
  70. ld [NPC02_GFXData], a
  71. ld a, $29
  72. ld [NPC03_YPos], a
  73. ld a, $90
  74. ld [NPC03_XPos], a
  75. ld a, 40
  76. ld [NPC03_GFXCounter], a
  77. ld a, 1
  78. ld [NPC03_GFXState], a
  79. xor a
  80. ld [NPC03_TileData], a
  81. ld a, HIGH(ActorROM)
  82. ld [NPC03_GFXData+1], a
  83. ld a, LOW(ActorROM)
  84. ld [NPC03_GFXData], a
  85. ld a, $71
  86. ld [NPC04_YPos], a
  87. ld a, $4F
  88. ld [NPC04_XPos], a
  89. ld a, 50
  90. ld [NPC04_GFXCounter], a
  91. ld a, 1
  92. ld [NPC04_GFXState], a
  93. xor a
  94. ld [NPC04_TileData], a
  95. ld a, HIGH(ActorROM)
  96. ld [NPC04_GFXData+1], a
  97. ld a, LOW(ActorROM)
  98. ld [NPC04_GFXData], a
  99. ld a, $4A
  100. ld [NPC05_YPos], a
  101. ld a, $67
  102. ld [NPC05_XPos], a
  103. ld a, $FF
  104. ld [NPC05_GFXCounter], a
  105. ld a, 1
  106. ld [NPC05_GFXState], a
  107. xor a
  108. ld [NPC05_TileData], a
  109. ld a, HIGH(ActorROM)
  110. ld [NPC05_GFXData+1], a
  111. ld a, LOW(ActorROM)
  112. ld [NPC05_GFXData], a
  113. ld a, LCDCF_ON | LCDCF_OBJON | LCDCF_BGON
  114. ld [rLCDC], a
  115. game_loop:
  116. call Hide_OAM
  117. call Read_Pad
  118. call PC_Update
  119. ld de, wShadowOAM
  120. ld hl, Player
  121. call RenderActor
  122. ld hl, NPC01
  123. call RenderActor
  124. ld hl, NPC02
  125. call RenderActor
  126. ld hl, NPC03
  127. call RenderActor
  128. ld hl, NPC04
  129. call RenderActor
  130. ld hl, NPC05
  131. call RenderActor
  132. call Wait_VBlank
  133. ld a, HIGH(wShadowOAM)
  134. call hOAMDMA
  135. jr game_loop