Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set kernel_options no_blank_lines
- set romsize 2k
- const noscore=1
- d=$c6 : e=$44
- title_screen
- g=0
- if w<64 then w=w+1 : z=1 : t=w/2
- if w>63 then u=0 : y=0
- bally=200
- b=b+1
- if b=0 then d=rand : e=rand
- playfield:
- .X.....XXX...XXX...XXX...X.X.....
- .X.....X.X...X.X...X.X...X.X.....
- .X.....XXX...XX....XX.....X......
- .X.....X.X...X.X...X.X....X......
- .X.....X.X...X.X...X.X....X......
- .X...............................
- .X.....XXX...XX.XX.........XX....
- .X.....X.....X.X.X.........X.X...
- .X.....XXX...X...X.........X.X...
- .X.....X.....X...X.........X.X...
- .XXXX..XXX...X...X.........X.X...
- end
- player0:
- %10101011
- %10101010
- %10111011
- %10101010
- %10101011
- %10000000
- end
- player1:
- %00011000
- %00011000
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %01111110
- %00011000
- %00011000
- end
- player0x=78 : player0y=47 : missile1x=78 : missile1y=41 : NUSIZ1=$25
- player1x=99 : player1y=88
- player0score=$80
- if !joy0fire then main
- beginning_game
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- X..............................X.
- X..XX..XX..XX..XX..XX..XX..XX..X.
- X..............................X.
- X..XX..XX..XX..XX..XX..XX..XX..X.
- X..............................X.
- X..XX..XX..XX..XX..XX..XX..XX..X.
- X..............................X.
- X..XX..XX..XX..XX..XX..XX..XX..X.
- X..............................X.
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
- end
- player0:
- %00011110
- %00110011
- %11110001
- end
- player1:
- %00111100
- %01111110
- %11111111
- %01111110
- %00111100
- end
- new_game
- player1score=0 : player0score=0 : y=0 : v=0
- new_game_2
- player1x=21 : player1y=21
- player0x=133
- player0y=79 : m=79
- get_new_present
- ballx=(rand/4)+21
- bally=(rand/4)+15
- main
- if switchreset then goto title_screen
- player1scorecolor=26 : COLUBK=d : COLUPF=e
- if switchbw then a=d : c=e : a=(d/16)-g : c=e/16 : player1scorecolor=8 : COLUBK=a : COLUPF=c
- ballheight=2
- CTRLPF=$21
- AUDV0=u : AUDC0=z : AUDF0=t
- drawscreen
- if player0score=$80 then goto title_screen
- d=$c6 : e=$44 : g=6
- if z>0 then w=w+1
- if w>15 then z=0 : w=0
- if player0score>$79 then z=1 : u=4 : y=1 : w=0
- missile1y=100
- NUSIZ1=$00
- b=0
- y=y+1
- if y=255 then player0score=addbcd(player0score, 5)
- if collision(player1,player0) then player0score=addbcd(player0score, 5) : z=3 : u=4 : t=24 : goto new_game_2
- if collision(ball,playfield) then ballx=ballx+1
- if collision(player1,ball) then player1score=addbcd(player1score, 1) : z=4 : u=4 : t=24 : goto get_new_present
- move_enemy
- s=s+1 : m=m+1
- if s{0} then move_player
- if m<32 then enemy_move
- get_enemy_dir
- m=0
- if n<3 then skip_eud
- n=1
- if player0y>player1y then enemy_move
- n = n + 1 : goto enemy_move
- skip_eud
- n=3
- if player0x<player1x then n = n + 1
- enemy_move
- pn = 0 : dir = n
- gosub move
- skip_enemy_move
- move_player
- if s{0} then goto main
- pn = 1
- dir = SWCHA / 16 ^ $0F
- if !dir then skip_to_f
- dir = dn[dir] : gosub move
- if dir then f = dir : goto main
- skip_to_f
- dir = f
- gosub move
- goto main
- rem direction number 1 = up, 2 = down, 3 = left, 4 = right
- data dn
- 0, 1, 2, 0, 3, 3, 3, 0, 4, 4, 4
- end
- rem pn = player number parameter
- rem dir = direction parameter
- rem scol = screen column
- rem srow = screen row
- dim pn = temp3
- dim dir = temp4
- dim scol = temp5
- dim srow = temp6
- move
- if dir < 3 then ud
- scol = (offset[dir] + player0x[pn]) / 4
- srow = (player0y[pn] - 7) / 8
- if pfread(scol, srow) then rl_0
- scol = (srow * 8) + 7
- if player0y[pn] = scol then skip_rl_0
- rl_0
- dir = 0
- skip_rl_0
- player0x[pn] = player0x[pn] + mov[dir]
- return
- ud
- scol = (player0x[pn] - 17) / 4
- srow = (offset[dir] + player0y[pn]) / 8
- if pfread(scol, srow) then ud_0
- scol = scol + 1
- if pfread(scol, srow) then ud_0
- scol = (scol * 4) + 13
- if player0x[pn] = scol then skip_ud_0
- ud_0
- dir = 0
- skip_ud_0
- player0y[pn] = player0y[pn] + mov[dir]
- return
- data offset
- 0, -8, 1, -18, -9
- end
- data mov
- 0, -1, 1, -1, 1
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement