Post by bluatigro on Sept 2, 2018 10:31:50 GMT
first step :
creating alien points and lives graphics
error :
points are not visable
creating alien points and lives graphics
error :
points are not visable
WindowWidth = DisplayWidth
WindowHeight = DisplayHeight
global winx , winy
winx = WindowWidth
winy = WindowHeight
dim st( 4 , 3 )
dim tel( 4 , 3 )
global goleft , goright , godownl , godownr
goleft = 0
goright = 1
godownl = 2
godownr = 3
global visable : visable = 8
gosub [color]
gosub [sprite]
nomainwin
open "space invaders" for graphics as #m
#m "font 40 bold"
call sprite.clear 100 , 100
call sprite.getbmp "no_live"
call sprite.ellipse 34 , 35 , 50 , 50 , red , red , 1
call sprite.ellipse 66 , 35 , 50 , 50 , red , red , 1
call sprite.triangle 9,35,81,35,50,100,red
call sprite.getbmp "live"
for i = 0 to 4
#m "addsprite live";i;" live no_live"
#m "spritexy live";i;" ";i*100;" 0"
next i
for char = 32 to 255
call sprite.clear 70 , 70
call sprite.text 20 , 50 , chr$( char ) , green
call sprite.getbmp "chr" ; char
anim$ = anim$ + " chr" ; char
next char
for i = 1 to 20
#m "addsprite char" ; i ; " " ; anim$
#m "spritexy char" ; i ; " " ; i * 40 ; " 0"
next i
call sprite.clear 50 , 50
call sprite.getbmp "clear"
call sprite.ellipse 25,25,50,50,green,green,1
call sprite.ellipse 10,25,10,10,white,white,1
call sprite.ellipse 10,25,5,5,black,black,1
call sprite.ellipse 25,15,10,10,white,white,1
call sprite.ellipse 25,15,5,5,black,black,1
call sprite.ellipse 40,25,10,10,white,white,1
call sprite.ellipse 40,25,5,5,black,black,1
call sprite.getbmp "alien"
for x = 0 to 4
for y = 0 to 3
#m "addsprite alien";x;y;" alien clear"
next y
next x
#m "fill black"
#m "getbmp screen 0 0 1 1"
#m "background screen"
call newgame
#m "trapclose [quit]"
timer 40 , [tmr]
wait
[quit]
close #m
end
[tmr]
t$ = "Points : " ; points
for i = 1 to len( t$ )
#m "spriteimage char";i;" char";asc(mid$(t$,i,1))
next i
for x = 0 to 4
for y = 0 to 3
#m "spritexy? alien";x;y;" a b"
select case st(x,y)
case goright
a = a + 4
if a > winx - 50 then
st( x , y ) = godownr
tel( x , y ) = 50
end if
case godownr
b = b + 4
tel( x , y ) = tel( x , y ) - 4
if tel( x , y ) <= 0 then
st( x , y ) = goleft
end if
case goleft
a = a - 4
if a <= 0 then
st( x , y ) = godownl
tel( x , y ) = 50
end if
case else
b = b + 4
tel( x , y ) = tel( x , y ) - 4
if tel( x , y ) <= 0 then
st( x , y ) = goright
end if
end select
#m "spritexy alien";x;y;" ";a;" ";b
next y
next x
#m "drawsprites"
wait
sub newgame
for x = 0 to 4
for y = 0 to 3
#m "spritexy alien";x;y;" ";x*70;" ";y*70+100
st( x , y ) = goright
next y
next x
end sub
''bluatigro 2 aug 2018
''color module
''needs :
''math module
[color]
global black , red , green , yellow
global blue , magenta , cyan , white
global pink , orange , gray , purple
black = rgb( 0 , 0 , 0 )
red = rgb( 255 , 0 , 0 )
green = rgb( 0 , 255 , 0 )
yellow = rgb( 255 , 255 , 0 )
blue = rgb( 0 , 0 , 255 )
magenta = rgb( 255 , 0 , 255 )
cyan = rgb( 0 , 255 , 255 )
white = rgb( 255 , 255 , 255 )
pink = rgb( 255 , 127 , 127 )
orange = rgb( 255 , 127 , 0 )
gray = rgb( 127 , 127 , 127 )
purple = rgb( 127 , 0 , 127 )
return
sub setcolor kl , bkl
r = int( kl and 255 )
g = int( kl / 256 ) and 255
b = int( kl / 256 / 256 ) and 255
br = int( bkl and 255 )
bg = int( bkl / 256 ) and 255
bb = int( bkl / 256 / 256 ) and 255
print #m , "backcolor " ; br ; " " _
; bg ; " "; bb
print #m , "color " ; r ; " " _
; g ; " " ; b
end sub
function rgb( r , g , b )
rgb = ( int( r ) and 255 ) _
+ ( int( g ) and 255 ) * 256 _
+ ( int( b ) and 255 ) * 256 * 256
end function
function rainbow( x )
r = sin( rad( x ) ) * 127 + 128
g = sin( rad( x - 120 ) ) * 127 + 128
b = sin( rad( x + 120 ) ) * 127 + 128
rainbow = rgb( r , g , b )
end function
function mix( kl1 , f , kl2 )
r1 = int( kl1 and 255 )
g1 = int( kl1 / 256 ) and 255
b1 = int( kl1 / 256 / 256 ) and 255
r2 = int( kl2 and 255 )
g2 = int( kl2 / 256 ) and 255
b2 = int( kl2 / 256 / 256 ) and 255
r = r1 + ( r2 - r1 ) * f
g = g1 + ( g2 - g1 ) * f
b = b1 + ( b2 - b1 ) * f
mix = rgb( r , g , b )
end function
''bluatigro 2 aug 2018
''sprite module
''needs :
''color module
[sprite]
global sprite.width , sprite.height
return
sub sprite.clear w , h
#m "fill white"
#m "goto 0 " ; h
#m "size 1"
#m "down"
#m "color black"
#m "backcolor black"
#m "boxfilled " ; w ; " " ; h * 2
#m "up"
sprite.width = w
sprite.height = h
end sub
sub sprite.triangle x1 , y1 , x2 , y2 , x3 , y3 , clr
if y1 = y2 then y1 = y1 - 1e-10
if y2 = y3 then y3 = y3 + 1e-10
if y1 > y3 then
h = y1
y1 = y3
y3 = h
h = x1
x1 = x3
x3 = h
end if
if y1 > y2 then
h = y1
y1 = y2
y2 = h
h = x1
x1 = x2
x2 = h
end if
if y2 > y3 then
h = y2
y2 = y3
y3 = h
h = x2
x2 = x3
x3 = h
end if
for i = y1 to y3
a = x1 + ( x3 - x1 ) * (i-y1) / ( y3 - y1 )
if i < y2 then
b = x1 + ( x2 - x1 ) * (i-y1) / ( y2 - y1 )
else
b = x2 + ( x3 - x2 ) * (i-y2) / ( y3 - y2 )
end if
call setcolor clr , clr
#m "down"
#m "line "; a ; " " _
; i + sprite.height ; " " ; b _
; " " ; i + sprite.height
#m "up"
call setcolor black , black
#m "down"
#m "line "; a ; " " ; i ; " " ; b ; " " ; i
#m "up"
next i
#m "flush"
end sub
sub sprite.rectangle x1,y1,x2,y2,clr,bclr,size
#m "goto " ; x1 ; " " ; y1
#m "size " ; size
call setcolor black , black
#m "down"
#m "boxfilled " ; x2 ; " " ; y2
#m "up"
#m "goto " ; x1 ; " " ; y1 + sprite.height
call setcolor clr , bclr
#m "down"
#m "boxfilled " ; x2 ; " " ; y2 + sprite.height
#m "up"
end sub
sub sprite.ellipse x,y,dx,dy,clr,bclr,size
#m "goto " ; x ; " " ; y
#m "size " ; size
#m "down"
call setcolor black , black
#m "ellipsefilled " ; dx ; " " ; dy
#m "up"
#m "goto " ; x ; " " ; y + sprite.height
#m "down"
call setcolor clr , bclr
#m "ellipsefilled " ; dx ; " " ; dy
#m "up"
end sub
sub sprite.pie x,y,dx,dy,a,b,clr,bclr,size
#m "goto " ; x ; " " ; y
#m "size " ; size
#m "down"
#m "color black"
#m "backcolor black"
#m "piefilled " ; dx ; " " ; dy _
; " " ; a ; " " ; b
#m "up"
#m "goto " ; x ; " " ; y + sprite.height
#m "down"
call setcolor clr , bclr
#m "piefilled " ; dx ; " " ; dy _
; " " ; a ; " " ; b
#m "up"
end sub
sub sprite.line x1,y1 , x2,y2 , clr , size
#m "color black"
#m "size " ; size
#m "down"
#m "line " ; x1 ; " " ; y1 _
; " " ; x2 ; " " ; y2
#m "up"
call setcolor clr , clr
#m "down"
#m "line " ; x1 ; " " ; y1 + sprite.height _
; " " ; x2 ; " " ; y2 + sprite.height
#m "up"
end sub
sub sprite.text x , y , text$ , kl
#m "goto " ; x ; " " ; y
#m "color black"
#m "backcolor white"
#m "down"
#m "\" ; text$
#m "up"
#m "goto " ; x ; " " ; y + sprite.height
call setcolor kl , black
#m "down"
#m "\" ; text$
#m "up"
end sub
sub sprite.getbmp bmp$
#m "getbmp " ; bmp$ ; " 0 0 " _
; sprite.width ; " " ; sprite.height * 2
end sub