Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] Bufory

Ostatnio zmodyfikowano 2009-05-19 23:30
Autor Wiadomość
Camper
Temat założony przez niniejszego użytkownika
» 2009-05-18 21:36:33
Sry że proszę abyście mi podali wszystko praktycznie na tacy ale nie potrafię tutaj wyłapać błędu. Już się ładnie kompiluje, ale nadal nic nie strzela.

C/C++
int strzal_x, strzal_y, strzal_s, strzal_w;
int frame = 0;

while( !key[ KEY_ESC ] )
{
    /* if( key[KEY_LEFT]) statek_x=statek_x-2;
              if( key[KEY_RIGHT]) statek_x=statek_x+2;
              if( key[KEY_UP]) statek_y=statek_y-2;
              if( key[KEY_DOWN]) statek_y=statek_y+2;
               if( key[KEY_A]) enemy_x=enemy_x-2;
                      if( key[KEY_D]) enemy_x=enemy_x+2;
                      if( key[KEY_W]) enemy_y=enemy_y-2;
                      if( key[KEY_S]) enemy_y=enemy_y+2;*/
   
   
    clear_to_color( bufor, makecol( 150, 150, 150 ) );
    masked_blit( bmp, bufor, 0, 0, 0, 0, bmp->w, bmp->h );
    if( key[ KEY_LEFT ] ) statek_x = statek_x - 2;
   
    if( key[ KEY_RIGHT ] ) statek_x = statek_x + 2;
   
    if( key[ KEY_UP ] ) statek_y = statek_y - 2;
   
    if( key[ KEY_DOWN ] ) statek_y = statek_y + 2;
   
    if( key[ KEY_A ] ) enemy_x = enemy_x - 2;
   
    if( key[ KEY_D ] ) enemy_x = enemy_x + 2;
   
    if( key[ KEY_W ] ) enemy_y = enemy_y - 2;
   
    if( key[ KEY_S ] ) enemy_y = enemy_y + 2;
   
   
   
    if( key[ KEY_M ] ) { if( !strzal ) {
            strzal_x = statek_x, strzal_y = statek_y, strzal_s = 25, strzal_w = 25; } else { strzal_y--; } }
    if( strzal_y > 0 ) { strzal_y = strzal_y - 5; }
   
    draw_sprite( bufor, strzal, strzal_x, strzal_y );
    draw_sprite( bufor, statek, statek_x, statek_y );
    draw_sprite( bufor, enemy, enemy_x, enemy_y );
   
    blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
   
   
    if( enemy_x < 0 ) { enemy_x = 800; }
    if( enemy_y < 0 ) { enemy_y = 600; }
    if( enemy_x > 800 ) { enemy_x = 0; }
    if( enemy_y > 600 ) { enemy_y = 0; }
    if( statek_x < 0 ) { statek_x = 800; }
    if( statek_y < 0 ) { statek_y = 600; }
    if( statek_x > 800 ) { statek_x = 0; }
    if( statek_y > 600 ) { statek_y = 0; }
    frame++;
    if( frame > 40 ) frame = 0;
   
P-7020
DejaVu
» 2009-05-18 23:27:37
Żeby zrobić ruch pocisku potrzebujesz 4 zmiennych dla niego.
P-7023
Camper
Temat założony przez niniejszego użytkownika
» 2009-05-19 10:41:34
Chodzi mi o strzał który leci prosto do góry.
Mam do niego x,y,s,w.
x i y do lokalizacji, a s,w do kolizji.
Coś jeszcze powinno być ?
P-7027
DejaVu
» 2009-05-19 11:00:37
Jeśli pocisk ma lecieć tylko do góry wystarczą 4. Jeśli będziesz zmianiał kierunek lotu to 6 ziennych. Ty dodałeś 2 zmienne wys i szer, które nie są powiązane z prędkością. W każdym razie przy czterech:
C/C++
if( !strzal )
{
    if( key[ KEY_M ] )
    {
        strzal_x = statek_x;
        strzal_y = statek_y;
        strzal_s = 25;
        strzal_w = 25;
        strzal = true;
    } //if
} else
{
    strzal_y -= 5;
    if( strzal_y < 0 ) strzal = false;
   
} //else
P-7029
Camper
Temat założony przez niniejszego użytkownika
» 2009-05-19 12:06:35
No więc teraz mam problem z kompilowaniem.
Piszę że nie może zamienić bool na bitmap.
131 F:\Projekty\stargate\main.cpp cannot convert `bool' to `BITMAP*' in assignment
chodzi o strzal
przypisuje mu bitmap wiec wcześniej deklarowałem że to BITMAP, i z tego co wnioskuje nie może on mieć wartości true or false.
Co wtedy ;p ?
// Już sobie z tym poradziłem.

Teraz mam pytanie, czy istnieje sposób na to żeby oba statki mogły strzelać jednocześnie ?
Chodzi o to że teraz jak naciskam M to strzela z pierwszego statku, a jak C (klawisz strzelania dla drugiego statku) to nie strzela.
Powinienem zrobić taką samą instrukcje tylko z innymi nazwami zmiennych? (tj. strzal_x2, strzal_y2 itd.)Czy jest jakiś sposób (podejrzewam że jest ;p )
P-7030
DejaVu
» 2009-05-19 23:30:32
tak - wykonać to samo ale z innymi zmiennymi. Każdy obiekt na scenie musi mieć własne informacje o położeniu, prędkości itp. dzięki czemu jednocześnie na scenie może być nawet milion obiektów :)
P-7046
1 « 2 »
Poprzednia strona Strona 2 z 2