|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2002
Città: Empoli (firenze)
Messaggi: 1521
|
[c++]Aiutoooooooooo!!
Sto facendo il gioco space invaders,per ogni oggetto nemico ci sono delle apposite funzioni per farlo spostare sinistra,destra e basso,con il controllo della collisione:
Codice:
bool alieni::left_nemico(int passo,int limite)
{
if(x-passo<=limite)
{
collisione_sinistra=true;
return false;
}
else
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
bar(x,y,x+32,y+32);
x=x-passo;
collisione_sinistra=false;
}
if(vita>0)
{
DisplayBMP(x,y,"nave2.bmp");
}
}
bool alieni::right_nemico(int passo,int limite)
{
if(x+passo+32>=limite)
{
collisione_destra=true;
return false;
}
else
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
bar(x,y-32,x+32,y+32);
x=x+passo;
collisione_destra=false;
}
if(vita>0)
{
DisplayBMP(x,y,"nave2.bmp");
}
}
bool alieni::down_nemico(int passo)
{
if(y+passo+32>=limite_basso)
{
collisione_basso=true;
return false;
}
else
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
bar(x,y-32,x+32,y+32);
y=y+passo;
collisione_basso=false;
}
if(vita>0)
{
DisplayBMP(x,y,"nave2.bmp");
}
}
Codice:
void basso(int j)
{
if(nemici[j].collisione_basso==false)
nemici[j].down_nemico(5);
if(nemici[j].collisione_basso==true && nemici[j].collisione_destra==true)
{
sini(j);
}
if(nemici[j].collisione_basso==true && nemici[j].collisione_sinistra==true)
{
dest(j);
}
}
void sini(int j)
{
if(nemici[j].collisione_sinistra==false && nemici[j].vita>0)
nemici[j].left_nemico(5,0);
if(nemici[j].collisione_sinistra==true && nemici[j].vita>0)
basso(j);
if (kbhit())
tasto();
}
void dest(int j)
{
if(nemici[j].collisione_destra==false && nemici[j].vita>0)
nemici[j].right_nemico(5,639);
if(nemici[j].collisione_destra==true && nemici[j].vita>0)
basso(j);
if (kbhit())
tasto();
}
Ecco il mio problema: Quando un alieno scende di una riga nn mi scende +,si blocca tutto il programma..è tutto il giorno che ci sto dietro e nn sono giunto accapo ad una conclusione. Vi spiego il funzionamento: Una navicella parte,quando arriva al bordo destro segnala che è andata di fuori,a questo punto scende,quando arriva al limite di scesa la navicella si muove e a sinistra,quando arriva a sinistra segnalo che è andata di fuori..e scendo..così via...
__________________
Imac 20" + iphone 4 16gb + MacBook Pro 13" Concluso affari con: bottoni,skino,semmy83,alex_ |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:47.



















