daily pastebin goal
68%
SHARE
TWEET

CHIP-8 invader

otto_baynes Apr 15th, 2012 141 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. OPTION SCHIP10
  2. OPTION BINARY
  3. ALIGN OFF
  4.  
  5. ;V0 - координата X invader'а
  6. ;V1 - координата Y invader'а
  7. ;V2 - координата X корабля
  8. ;V3 - координата Y корабля
  9. ;V4 - хранит временные значния
  10. ;V5 - направление движения invader'а (0 - влево, 1 - вправо)
  11. ;V6 - хранит номер нажатой клавиши
  12.  
  13.         high    ;переходим в режим SCHIP
  14.        
  15.         ld v0,60
  16.         ld v1,5        
  17.         call draw_invader
  18.        
  19.         ld v2,50       
  20.         ld v3,56       
  21.         call draw_warship
  22.        
  23.         call set_timer
  24.         ld v5, 1        ;первоначально движемся вправо
  25.        
  26. loop:
  27.         ld v4, dt
  28.         sne v4, 0       ;если таймер обнулён, то перерисовываем спрайт
  29.         call move_invader
  30.        
  31.         ld v6, 4        ;проверяем нажатия клавиш
  32.         sknp v6
  33.         call left
  34.        
  35.         ld v6, 6
  36.         sknp v6
  37.         call right
  38.        
  39.         jp loop
  40.  
  41. move_invader:
  42.         call draw_invader ;стираем прежний спрайт
  43.        
  44.         sne v0, 116     ;если достигли края экрана
  45.         ld v5, 0        ;изменить направление движения
  46.         sne v0, 0
  47.         ld v5, 1
  48.        
  49.         ld v4, 2
  50.         se v5, 0        ;в зависимости от направления движения
  51.         add v0, v4      ;передвигаем вправо на 2 пикселя
  52.         se v5, 1
  53.         sub v0, v4      ;либо влево
  54.        
  55.         call draw_invader       ;рисуем на новом месте
  56.         call set_timer
  57.         ret
  58.  
  59. set_timer:
  60.         ld v4, 5
  61.         ld dt, v4
  62.         ret
  63.  
  64. draw_invader:
  65.         ld I,invader
  66.         drw v0,v1,0
  67.         ret
  68.  
  69. draw_warship:
  70.         ld I,warship
  71.         drw v2,v3,8
  72.         ret
  73.  
  74. left:
  75.         call draw_warship
  76.         ld v4, 1
  77.         sub v2, v4
  78.         call draw_warship
  79.         ret
  80.        
  81. right:
  82.         call draw_warship
  83.         ld v4, 1
  84.         add v2, v4
  85.         call draw_warship
  86.         ret
  87.  
  88. invader:        ;спрайт размером 16x16
  89.         dw $..1.....1.......
  90.         dw $...1...1........
  91.         dw $..1111111.......
  92.         dw $.11.111.11......
  93.         dw $11111111111.....
  94.         dw $1.1111111.1.....
  95.         dw $1.1.....1.1.....
  96.         dw $...11.11........
  97.         dw $................
  98.         dw $................
  99.         dw $................
  100.         dw $................
  101.         dw $................
  102.         dw $................
  103.         dw $................
  104.         dw $................
  105.        
  106. warship:        ;спрайт размером 8x8
  107.         db $...11...
  108.         db $...11...
  109.         db $...11...
  110.         db $..1111..
  111.         db $..1..1..
  112.         db $.111111.
  113.         db $11.11.11
  114.         db $1.1..1.1
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top