load array() and save array() opens and closes the file so you don't have to "open file or close file".
at the right side of the editor,click on settings then full screen exclusive mode. this is supposed to cap the speed at 60 I think. on my pc it is 75. I made some changes to ball_speed in the load: routine, you may have to adjust the values. these are suggestions only.
remstart breakout game
project started 01/02/05 19:27
project finished 05/02/05 19:31
updates started 09/02/05 19:46
updates finished 14/02/05 10:34
remend
rem make menue for game
dim old_hi_score(1)
old_hi_score(1)=100
if file exist("score.txt") then goto start:
make file "score.txt" `__________________________remove this line
save array "score.txt",old_hi_score(1)
start:
open to read 1,"score.txt" '_____________________remove this line
load array "score.txt",old_hi_score(1)
randomize timer()
hide mouse
selected=0
menue:
cls
do
text1$="Start game"
text2$="HI-SCORE"
ink rgb(0,200,0),rgb(0,0,255)
set text transparent
set cursor 5,5
set text transparent
print "";text1$;""
set cursor 5,20
set text transparent
print "";text2$;""
goto controles: `_______________________________remove this line
loop `__________________________________________remove this line
do `____________________________________________remove this line
controles: `____________________________________remove this line
if upkey()=1 then selected=selected-1
if downkey()=1 then selected=selected+1
if selected>2 then selected=selected-1
if selected<0 then seleted=selected+1 `_________fix this line to this________________'select<1' and fix spelling mistake 'seleted'
if selected=1 then goto start2:
if selected=2 then goto score:
loop
start2:
do
set cursor 5,5
print "";text1$;""
set text opaque
if returnkey()=1 then goto load:
if upkey()=1 then goto menue:
if downkey()=1 then goto menue:
loop
score:
do
set cursor 5,20
print "";text2$;""
set text opaque
if returnkey()=1 then goto old_hi_score:
if upkey()=1 then goto menue:
if downkey()=1 then goto menue:
loop
load:
close file 1 `__________________________________remove this line
dim player_score(1)
player_score(1)=0
rem player position 1=y 2=x
set text transparent
ink rgb(255,255,255),rgb(255,255,255)
playerposy=450
playerposx=270
lives=3
rem create box for player
box 1,40,70,50
rem make the box and image
get image 1, 1,40,70,50
cls
rem make the ball for the game
circle 5,5,5
rem make the ball an image
get image 2, 0,0,15,15
cls
rem set ball position
ball_x=300
ball_y=440
rem set ball speed
ball_speed=3
rem direction veriables
ballx_dir=0
bally_dir=0
rem get random number for each axis
random_direction_x=rnd(1)
random_direction_y=rnd(1)
ballx_dir=random_direction_x
bally_dir=random_direction_y
remstart main
controles move sprite
by redrawing and changeing co-ordenents
remend
rem breakable boxes
win:
blox=23
sprite 3,20,5,1
set sprite diffuse 3,rnd(255),rnd(255),rnd(255)
sprite 4,95,5,1
set sprite diffuse 4,rnd(255),rnd(255),rnd(255)
sprite 5,170,5,1
set sprite diffuse 5,rnd(255),rnd(255),rnd(255)
sprite 6,245,5,1
set sprite diffuse 6,rnd(255),rnd(255),rnd(255)
sprite 7,320,5,1
set sprite diffuse 7,rnd(255),rnd(255),rnd(255)
sprite 8,395,5,1
set sprite diffuse 8,rnd(255),rnd(255),rnd(255)
sprite 9,470,5,1
set sprite diffuse 8,rnd(255),rnd(255),rnd(255)
sprite 10,545,5,1
set sprite diffuse 10,rnd(255),rnd(255),rnd(255)
sprite 11,20,25,1
set sprite diffuse 11,rnd(255),rnd(255),rnd(255)
sprite 12,95,25,1
set sprite diffuse 12,rnd(255),rnd(255),rnd(255)
sprite 13,170,25,1
set sprite diffuse 13,rnd(255),rnd(255),rnd(255)
sprite 14,245,25,1
set sprite diffuse 14,rnd(255),rnd(255),rnd(255)
sprite 15,320,25,1
set sprite diffuse 15,rnd(255),rnd(255),rnd(255)
sprite 16,395,25,1
set sprite diffuse 16,rnd(255),rnd(255),rnd(255)
sprite 17,470,25,1
set sprite diffuse 17,rnd(255),rnd(255),rnd(255)
sprite 18,545,25,1
set sprite diffuse 18,rnd(255),rnd(255),rnd(255)
sprite 19,40,45,1
set sprite diffuse 19,rnd(255),rnd(255),rnd(255)
sprite 20,115,45,1
set sprite diffuse 20,rnd(255),rnd(255),rnd(255)
sprite 21,190,45,1
set sprite diffuse 21,rnd(255),rnd(255),rnd(255)
sprite 22,265,45,1
set sprite diffuse 22,rnd(255),rnd(255),rnd(255)
sprite 23,340,45,1
set sprite diffuse 23,rnd(255),rnd(255),rnd(255)
sprite 24,415,45,1
set sprite diffuse 24,rnd(255),rnd(255),rnd(255)
sprite 25,490,45,1
set sprite diffuse 25,rnd(255),rnd(255),rnd(255)
rem main loop
load array "score.txt",old_hi_score(1)
do
cls
main:
ball_speed = screen fps() /12 `___________add this and the next line
if ball_speed < 5 then ball_speed = 5
set cursor 530,435
load array "score.txt",old_hi_score(1)
print "HI-SCORE ";old_hi_score(1);""
set cursor 5,435
print "Score ";player_score(1);""
set cursor 5,420
print "lives ";lives;""
rem re-draw sprites
sprite 1,playerposx,playerposy,1
sprite 2,ball_x,ball_y,2
set sprite diffuse 2,50,200,100
rem player controle
if leftkey()=1 then playerposx=playerposx-ball_speed-1 `changed this
if rightkey()=1 then playerposx=playerposx+ball_speed+1`changed this line
rem stop ball going off edge of screen
if playerposx<6 then playerposx=playerposx+ball_speed+1`changed this line
if playerposx>565 then playerposx=playerposx-ball_speed-1`changed this line
rem ball controles
IF ballx_dir = 0 then DEC ball_x, ball_speed
IF ballx_dir = 1 then INC ball_x, ball_speed
IF bally_dir = 0 then DEC ball_y, ball_speed
IF bally_dir = 1 then INC ball_y, ball_speed
rem makes ball bounce of screen
if ball_x <1 then ballx_dir=1
IF ball_y <1 then bally_dir = 1
if ball_x >630 then ballx_dir=0
IF ball_y >470 then bally_dir = 0 :lives=lives-1
rem collision
if sprite hit (2,1)=1 then bally_dir=0
for x=3 to 25
if sprite hit (2,x)=1 then bally_dir=1 : player_score(1)=player_score(1)+10 :delete sprite x: blox=blox-1
next x
if blox=0 then goto win
overwrite()
if lives<1 then goto load:
if keystate(25)=1 then suspend for key
if spacekey()=1 then clearscreen() :goto menue:
loop
old_hi_score:
do
cls
set text transparent
set cursor 100,300
set text size 20
print "TOP SCORE IS"
set cursor 250,300
load array "score.txt",old_hi_score(1)
print "";old_hi_score(1);""
set cursor 100,350
print "Press space to return to main"
if spacekey()=1 then cls :goto menue:
loop
function clearscreen()
for x=1 to 25
if sprite exist(x) then delete sprite x
next x
endfunction
function overwrite() `________remove the open file statement from the following line
if player_score(1)>old_hi_score(1) then old_hi_score(1)=player_score(1) :open to write 1,"score.txt" :save array "score.txt",old_hi_score(1)
endfunction