When you turn sync on you need to put a "sync" anytime you want to update the screen.
It would probably be better to just limit the range instead of trying to change the angle... or are you wanting it to bounce off the screen edges?
Anytime you use "get image" in Pro... always add a ,1 at the end of the command... so your images aren't distorted.
Rem Make Ship
line 0,49,24,0
line 25,0,49,49
line 49,49,0,49
get image 1,0,0,50,50,1
cls
rem make bullet
box 0,0,3,6
get image 2,0,0,3,6,1
cls
rem STATION
line 0,0,49,49
line 49,0,0,49
get image 4,0,0,50,50,1
cls
backdrop on
Rem Make Ship Sprite
sprite 1,311,231,1
sprite 2,200,400,1
sprite 4,200,200,4
offset sprite 1,25,25
rem main loop
sync on
do
rem This only only happens the first time or else it is smaller
sprite 2,sprite x(2),sprite y(2),1
if upkey()=1 and wall(1)=0 then move sprite 1,1
if downkey()=1 and wall(1)=0 then move sprite 1,-1
if leftkey()=1
sa=wrapvalue(sa-1)
rotate sprite 1,sa
endif
if rightkey()=1
sa=wrapvalue(sa+1)
rotate sprite 1,sa
endif
if f=0
sprite 1,sprite x(1),sprite y(1),1
f=1
endif
`if spacekey()=1 then shoot(bt,sn)
`wall(1)
sync
loop
function wall(sn)
w=0
rem top
if sprite y(sn)<0
if sprite angle(sn)>270 and sprite angle(sn)<90
move sprite sn,1
endif
if sprite angle(sn)<270 and sprite angle(sn)>90
move sprite sn,-1
endif
w=1
endif
rem bottom
if sprite y(sn)>screen height()
if sprite angle(sn)>270 and sprite angle(sn)<90
move sprite sn,1
endif
if sprite angle(sn)<270 and sprite angle(sn)>90
move sprite sn,-1
endif
w=1
endif
rem left
if sprite x(sn)<0
if sprite angle(sn)>0 and sprite angle(sn)<180
move sprite sn,-1
endif
if sprite angle(sn)<360 and sprite angle(sn)>180
move sprite sn,1
endif
w=1
endif
rem right
if sprite x(sn)>screen width()
if sprite angle(sn)>0 and sprite angle(sn)<180
move sprite sn,-1
endif
if sprite angle(sn)<270 and sprite angle(sn)>90
move sprite sn,1
endif
w=1
endif
endfunction w