Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - bricky91

#46
Quote from: ipriceYou haven't DIMensioned COLPOX[] or COLPOY[]

Colpox and colpoy are arrays - you are going out of bounds in one or other (or both) arrays by increasing the n value. If you add -

Code (glbasic) Select
DIM colpox[100000]
DIM colpoy[100000]
at the beginning of your code, you can see the bullet.

Obviously you need to ensure that these still don't go out of bounds, by resetting their value to zero once they are of no use (hit something or off screen etc.)

:)
thanks very much! now it's all clear... i must write the arrays at the beginning... thanks again  :)
#47
Hello guys, i'm new here! oh, and i'm italian, so my english isn't very good ^^
however, i've started using GL Basic a few days ago, but i have some experience with game maker, using only scripts(without objects), and it is quite similar.
i made a pong game by myself, and it wasn't difficult, so i decided to make a shooter... but i have a problem... i wrote this code:
Code (glbasic) Select
GOSUB init

main:
GOSUB muovi
GOSUB mostra
GOTO main





// ------------------------------------------------------------- //
// ---  INIT  ---
// ------------------------------------------------------------- //
SUB init:


//settiamo variabili e quant'altro*******************************************************************+

//giocatore
plx=320
ply=380

//colpi
n=0
puoisparare=60


ENDSUB // INIT




// ------------------------------------------------------------- //
// ---  MUOVI  ---
// ------------------------------------------------------------- //
SUB muovi:

//giocatore********************************************************************************************

//movimento

IF KEY(203) AND plx>8
plx=plx-4
ENDIF

IF KEY(205) AND plx<630
plx=plx+4
ENDIF

IF KEY(200) AND ply>10
ply=ply-2
ENDIF

IF KEY(208) AND ply<470
ply=ply+2
ENDIF


//sparo

IF puoisparare>0
puoisparare=puoisparare-1        
ENDIF

IF KEY(30) AND puoisparare=0
n=n+1
colpox[n]=plx
colpoy[n]=ply
puoisparare=60
ENDIF


//muoviamo i colpi verso l'alto e distruggiamoli se fuori*****************************************
FOR i=1 TO n
colpoy[i]=colpoy[i]-6
NEXT




ENDSUB // MUOVI






// ------------------------------------------------------------- //
// ---  MOSTRA  ---
// ------------------------------------------------------------- //
SUB mostra:

//disegna la navetta del giocatore
DRAWRECT plx-8,ply-10,16,20,RGB(0,255,0)

//disegna i colpi
FOR i=1 TO n
DRAWRECT colpox[i]-2,colpoy[i]-2,4,4,RGB(0,255,0)
NEXT
 
PRINT puoisparare,100,100
//mostra tutto
SHOWSCREEN


ENDSUB // MOSTRA
the main variables are:

plx= player x position
ply=  player y position
n= shot number(first, second, third,...)
puoisparare= if the value of this variable is 0, then you can shoot.

SUBS
muovi = here are the keyboard controls
mostra= here is all the graphic
init= give the variables the start values

the problem become when i try to shoot... i press the A button, and when the variable puoisparare is equal to 0 the window is closed and the game stop... why does it happen?? what am i doing wrong?

thanks all, bye!