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

Allegro 4 Problem zwieszanie gry.

Ostatnio zmodyfikowano 2012-10-09 14:58
Autor Wiadomość
Forczek
Temat założony przez niniejszego użytkownika
Allegro 4 Problem zwieszanie gry.
» 2012-10-08 13:52:13
Siemka, na początku dam kod:
C/C++
if( menu == 2 )
{
    frame[ 1 ] ++;
    if( frame[ 1 ] == 150 )
    {
        czas += 1;
        frame[ 1 ] = 0;
    }
    if( lvl == 1 )
    {
        blit( mapa1, bufor, 0, 0, 0, 0, 800, 600 );
    }
    if( lvl == 2 )
    {
        blit( mapa2, bufor, 0, 0, 0, 0, 800, 600 );
    }
    if( lvl == 3 )
    {
        blit( mapa3, bufor, 0, 0, 0, 0, 800, 600 );
    }
    if( lvl == 4 )
    {
        blit( mapa4, bufor, 0, 0, 0, 0, 800, 600 );
    }
    textprintf_ex( bufor, font, 50, 20, makecol( 0, 0, 200 ), - 1, "Pozostalo puntkow: %d", wymagane_punkty[ 0 ] );
    textprintf_ex( bufor, font, 250, 20, makecol( 0, 0, 200 ), - 1, "Czas: %d", czas );
    textprintf_ex( bufor, font, 350, 20, makecol( 0, 0, 200 ), - 1, "Zycia: %d", live );
    masked_blit( moneta, bufor, 0, 0, moneta_x[ 0 ], moneta_y[ 0 ], moneta->w, moneta->h );
    masked_blit( moneta, bufor, 0, 0, moneta_x[ 1 ], moneta_y[ 1 ], moneta->w, moneta->h );
    masked_blit( moneta, bufor, 0, 0, moneta_x[ 2 ], moneta_y[ 2 ], moneta->w, moneta->h );
    masked_blit( bomba, bufor, 0, 0, bomba_x[ 0 ], bomba_y[ 0 ], bomba->w, bomba->h );
    masked_blit( bomba, bufor, 0, 0, bomba_x[ 1 ], bomba_y[ 1 ], bomba->w, bomba->h );
    masked_blit( bomba, bufor, 0, 0, bomba_x[ 2 ], bomba_y[ 2 ], bomba->w, bomba->h );
    if( lvl == 1 )
    {
        if( mx > 50 && mx < 750 )
        {
            masked_blit( skrzynia1, bufor, 0, 0, mx - 50, 500, skrzynia1->w, skrzynia1->h );
        }
        if( mx < 50 )
        {
            masked_blit( skrzynia1, bufor, 0, 0, 0, 500, skrzynia1->w, skrzynia1->h );
        }
        if( mx > 750 )
        {
            masked_blit( skrzynia1, bufor, 0, 0, 700, 500, skrzynia1->w, skrzynia1->h );
        }
    }
    if( lvl == 2 )
    {
        if( mx > 50 && mx < 750 )
        {
            masked_blit( skrzynia2, bufor, 0, 0, mx - 50, 500, skrzynia2->w, skrzynia2->h );
        }
        if( mx < 50 )
        {
            masked_blit( skrzynia2, bufor, 0, 0, 0, 500, skrzynia2->w, skrzynia2->h );
        }
        if( mx > 750 )
        {
            masked_blit( skrzynia2, bufor, 0, 0, 700, 500, skrzynia2->w, skrzynia2->h );
        }
    }
    if( lvl == 3 )
    {
        if( mx > 50 && mx < 750 )
        {
            masked_blit( skrzynia3, bufor, 0, 0, mx - 50, 500, skrzynia3->w, skrzynia3->h );
        }
        if( mx < 50 )
        {
            masked_blit( skrzynia3, bufor, 0, 0, 0, 500, skrzynia3->w, skrzynia3->h );
        }
        if( mx > 750 )
        {
            masked_blit( skrzynia3, bufor, 0, 0, 700, 500, skrzynia3->w, skrzynia3->h );
        }
    }
    if( lvl == 4 )
    {
        if( mx > 50 && mx < 750 )
        {
            masked_blit( skrzynia4, bufor, 0, 0, mx - 50, 500, skrzynia4->w, skrzynia4->h );
        }
        if( mx < 50 )
        {
            masked_blit( skrzynia4, bufor, 0, 0, 0, 500, skrzynia4->w, skrzynia4->h );
        }
        if( mx > 750 )
        {
            masked_blit( skrzynia4, bufor, 0, 0, 700, 500, skrzynia4->w, skrzynia4->h );
        }
    }
    if( spadanie_monet[ 0 ] == false && frame[ 1 ] == 0 )
    {
        losowanie_monet[ 0 ] =( rand() % 100 ) + 0;
        moneta_x[ 0 ] =( rand() % 750 ) + 0;
        if( losowanie_monet[ 0 ] <= 40 )
        {
            spadanie_monet[ 0 ] = true;
        }
    }
    if( spadanie_monet[ 1 ] == false && frame[ 1 ] == 0 )
    {
        losowanie_monet[ 1 ] =( rand() % 100 ) + 0;
        moneta_x[ 1 ] =( rand() % 750 ) + 0;
        if( losowanie_monet[ 1 ] <= 40 )
        {
            spadanie_monet[ 1 ] = true;
        }
    }
    if( spadanie_monet[ 2 ] == false && frame[ 1 ] == 0 )
    {
        losowanie_monet[ 2 ] =( rand() % 100 ) + 0;
        moneta_x[ 2 ] =( rand() % 750 ) + 0;
        if( losowanie_monet[ 2 ] <= 40 )
        {
            spadanie_monet[ 2 ] = true;
        }
    }
    if( spadanie_bomby[ 0 ] == false && frame[ 1 ] == 0 )
    {
        losowanie_bomby[ 0 ] =( rand() % 100 ) + 0;
        bomba_x[ 0 ] =( rand() % 750 ) + 0;
        if( losowanie_bomby[ 0 ] <= 40 )
        {
            spadanie_bomby[ 0 ] = true;
        }
    }
    if( spadanie_bomby[ 1 ] == false && frame[ 1 ] == 0 )
    {
        losowanie_bomby[ 1 ] =( rand() % 100 ) + 0;
        bomba_x[ 1 ] =( rand() % 750 ) + 0;
        if( losowanie_bomby[ 1 ] <= 40 )
        {
            spadanie_bomby[ 1 ] = true;
        }
    }
    if( spadanie_bomby[ 2 ] == false && frame[ 2 ] == 0 )
    {
        losowanie_bomby[ 2 ] =( rand() % 100 ) + 0;
        bomba_x[ 2 ] =( rand() % 750 ) + 0;
        if( losowanie_bomby[ 2 ] <= 40 )
        {
            spadanie_bomby[ 2 ] = true;
        }
    }
    if( spadanie_monet[ 0 ] == true )
    {
        moneta_y[ 0 ] ++;
    }
    if( moneta_y[ 0 ] == 500 )
    {
        spadanie_monet[ 0 ] = false;
        moneta_y[ 0 ] = - 50;
    }
    if( spadanie_monet[ 1 ] == true )
    {
        moneta_y[ 1 ] ++;
    }
    if( moneta_y[ 1 ] == 500 )
    {
        spadanie_monet[ 1 ] = false;
        moneta_y[ 1 ] = - 50;
    }
    if( spadanie_monet[ 2 ] == true )
    {
        moneta_y[ 2 ] ++;
    }
    if( moneta_y[ 2 ] == 500 )
    {
        spadanie_monet[ 2 ] = false;
        moneta_y[ 2 ] = - 50;
    }
    if( spadanie_bomby[ 0 ] == true )
    {
        bomba_y[ 0 ] ++;
    }
    if( bomba_y[ 0 ] == 500 )
    {
        spadanie_bomby[ 4 ] = false;
        bomba_y[ 0 ] = - 50;
    }
    if( spadanie_bomby[ 1 ] == true )
    {
        bomba_y[ 1 ] ++;
    }
    if( bomba_y[ 1 ] == 500 )
    {
        spadanie_bomby[ 1 ] = false;
        bomba_y[ 1 ] = - 50;
    }
    if( spadanie_bomby[ 2 ] == true )
    {
        bomba_y[ 2 ] ++;
    }
    if( bomba_y[ 2 ] == 500 )
    {
        spadanie_bomby[ 4 ] = false;
        bomba_y[ 2 ] = - 50;
    }
    if( moneta_y[ 0 ] > 450 && mx >= moneta_x[ 0 ] && mx - 50 <= moneta_x[ 0 ] )
    {
        spadanie_monet[ 0 ] = false;
        moneta_y[ 0 ] = - 50;
        wymagane_punkty[ 0 ] -= 1;
    }
    if( moneta_y[ 1 ] > 450 && mx >= moneta_x[ 1 ] && mx - 50 <= moneta_x[ 1 ] )
    {
        spadanie_monet[ 1 ] = false;
        moneta_y[ 1 ] = - 50;
        wymagane_punkty[ 0 ] -= 1;
    }
    if( moneta_y[ 2 ] > 450 && mx >= moneta_x[ 2 ] && mx - 50 <= moneta_x[ 2 ] )
    {
        spadanie_monet[ 2 ] = false;
        moneta_y[ 2 ] = - 50;
        wymagane_punkty[ 0 ] -= 1;
    }
    if( bomba_y[ 0 ] > 450 && mx >= bomba_x[ 0 ] && mx - 50 <= bomba_x[ 0 ] )
    {
        spadanie_bomby[ 0 ] = false;
        bomba_y[ 0 ] = - 50;
        wymagane_punkty[ 0 ] -= 1;
    }
    if( bomba_y[ 1 ] > 450 && mx >= bomba_x[ 1 ] && mx - 50 <= bomba_x[ 1 ] )
    {
        spadanie_bomby[ 1 ] = false;
        bomba_y[ 1 ] = - 50;
        wymagane_punkty[ 1 ] -= 1;
    }
    if( bomba_y[ 2 ] > 450 && mx >= bomba_x[ 2 ] && mx - 50 <= bomba_x[ 2 ] )
    {
        spadanie_bomby[ 2 ] = false;
        bomba_y[ 2 ] = - 50;
        wymagane_punkty[ 2 ] -= 1;
    }
    if( key[ KEY_Q ] )
    {
        menu = 1;
    }
    blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
}
To jest kod w którym dzieją się akcje w której jest błąd.
Opis błędu: Czas podnosi się do 1/2 i przestaje iść w góre. Mi to wygląda na zawieszenie gry. Czy może jest błąd w kodzie.
Tutaj link do chomika: http://chomikuj.pl/duniel98 załóżcie konto i pobierzcie. To waży tyle że dacie rady. Są tam dwa pliki Cos.rar i lapanie monet.rar Cos = gra z błędem lapanie monet = projekt, lecz nie pamiętam na jakim etapie. Jak to naprawić?
P-66392
DejaVu
» 2012-10-08 16:09:39
Przed pisaniem gry powinieneś opanować pętlę for... Bez jej znajomości napisanie w miarę sensownej gry będzie graniczyło z cudem :)
P-66414
Forczek
Temat założony przez niniejszego użytkownika
» 2012-10-08 21:27:14
Co do pętli for. Znam ją, lecz nie pomyślałem o jej użyciu xD. A więc co może być nie tak? Spróbuje od nowa ją częściono napisać. Użyję pętli for, mam mało do pisania. Po prostu nie wiem dlaczego monety lecą do góry i na boki, a potem przestają.
P-66461
Forczek
Temat założony przez niniejszego użytkownika
» 2012-10-09 14:58:19
Zastosowałem pętle for i działa. Dzieki.
P-66493
« 1 »
  Strona 1 z 1