otto_baynes

CHIP-8 move sprite

Apr 14th, 2012
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. OPTION BINARY
  2. ALIGN OFF
  3.  
  4. ld v0,28
  5. ld v1,10
  6. ld I,sprite
  7. drw v0,v1,12 ;рисуем спрайт в центре экрана
  8.  
  9. ld v4, 1 ;регистр v4 будем использовать для изменения координаты на 1 пиксель
  10.  
  11. loop:
  12. ld v3, 2 ;в регистре v3 сохраняем номер клавиши
  13. sknp v3 ;пропускаем следующую инструкцию если эта клавиша не нажата
  14. call up ;если клавиша оказалась нажата, то вызываем подпрограмму up
  15.  
  16. ld v3, 8 ;остальное подобно предыдущему блоку
  17. sknp v3
  18. call down
  19.  
  20. ld v3, 4
  21. sknp v3
  22. call left
  23.  
  24. ld v3, 6
  25. sknp v3
  26. call right
  27.  
  28. jp loop
  29.  
  30. up:
  31. drw v0,v1,12 ;стираем спрайт
  32. sub v1, v4 ;вычисляем новую координату
  33. drw v0,v1,12 ;рисуем спрайт на новом месте
  34. ret ;возвращаемся из подпрограммы в место вызова
  35.  
  36. down:
  37. drw v0,v1,12 ;подобно функции up
  38. add v1, v4
  39. drw v0,v1,12
  40. ret
  41.  
  42. left:
  43. drw v0,v1,12
  44. sub v0, v4
  45. drw v0,v1,12
  46. ret
  47.  
  48. right:
  49. drw v0,v1,12
  50. add v0, v4
  51. drw v0,v1,12
  52. ret
  53.  
  54. sprite:
  55. db $......1.
  56. db $..111.1.
  57. db $..111.1.
  58. db $..1.1.1.
  59. db $..111.1.
  60. db $11111.1.
  61. db $11111111
  62. db $11111.1.
  63. db $.1111...
  64. db $..111...
  65. db $..1.1...
  66. db $..1.1...
Advertisement
Add Comment
Please, Sign In to add comment