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

[allegro] Animacja mapy.

Ostatnio zmodyfikowano 2008-09-12 21:53
Autor Wiadomość
Patzick
Temat założony przez niniejszego użytkownika
» 2008-09-09 22:04:29
ok więc dałem

C/C++
void wys_mape()
{
   
    int szer = 14;
    int wys = 10;
    int przesunX = 6;
    int przesunY = 4;
    int licznik_x, licznik_y;
    for( licznik_x = 0 - przesunX; licznik_x < szer - przesunX; licznik_x++ )
    {
        for( licznik_y = 0 - przesunY; licznik_y < wys - przesunY; licznik_y++ )
        {
            if( frame < 3 )
            { blit( teren, bufor,( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 48,( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 48,
                ( licznik_x + przesunX ) * 48,( licznik_y + przesunY ) * 48, 48, 48 ); };
            if( 3 <= frame < 6 )
            { blit( teren, bufor,( map2[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 48,( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 48,
                ( licznik_x + przesunX ) * 48,( licznik_y + przesunY ) * 48, 48, 48 ); };
            if( 6 <= frame <= 10 )
            { blit( teren, bufor,( map3[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 48,( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 48,
                ( licznik_x + przesunX ) * 48,( licznik_y + przesunY ) * 48, 48, 48 ); };
           
        };
    };
};

niestety nic to nie zmieniło, ciągle żadnej reakcji
P-1536
DejaVu
» 2008-09-09 22:37:56
Zadam poraz kolejny to samo pytanie, jakie zadałem na początku:
if( 6 <= frame <= 10 )
Co to jest?
P-1537
Patzick
Temat założony przez niniejszego użytkownika
» 2008-09-09 23:05:37
no to ma być warunek, żeby kolejna mapa została wyświetlona. Skoro się mnie ciągle pytasz to musi być tu jakaś oczywistość której nie dostrzegam, bo przyglądam się cały czas i tego nie widzę :P

EDIT//

spróbowałem jeszcze  if ((3<=frame)&&(frame<6)) ale taki sam efekt
P-1538
DejaVu
» 2008-09-09 23:57:37
To zamień wszystkie warunki na prawidłowe, a nie na twór, który wymyśliłeś :)

Wytłymaczenie:
C/C++
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    int liczba;
    cin >> liczba;
    int wynik =( 3 <= liczba <= 10 ); //zawsze zwróci prawdę => dlaczego?
    //(3<=liczba) => wynik: false (0) lub true (1).
    //((0 lub 1) <=10) => prawda
    cout << "(3<=liczba<=10) = " << wynik << endl;
    wynik =( 3 <= liczba && liczba <= 10 );
    cout << "(3<=liczba && liczba<=10) = " << wynik << endl;
    getch();
    return 0;
}

/edit:
Z tego co napisałeś jednoznacznie wynika, że nie zmieniłeś wszystkich warunków, tylko jeden. Ostatni warunek jest więc znowu zawsze spełniony.
P-1539
Patzick
Temat założony przez niniejszego użytkownika
» 2008-09-12 15:45:17
no wielkie rozwiązanie, prześledziłem cały kod i okazało się, że jestem głupi :P
a tak na poważnie to nie dałem w funkcji blit wszędzie 2 i 3 mapy, tylko 1 była

przykładowo zamiast
C/C++
if( 3 <= frame < 6 )
{ blit( teren, bufor,( map2[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 48,( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 48,( licznik_x + przesunX ) * 48,( licznik_y + przesunY ) * 48, 48, 48 ); };
powinno być

C/C++
if( 3 <= frame < 6 )
{ blit( teren, bufor,( map2[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 48,( map2[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 48,( licznik_x + przesunX ) * 48,( licznik_y + przesunY ) * 48, 48, 48 ); };

ehh...długo trwało zanim to zauważyłem :) dzięki za pomoc i życzę wszystkim, by nie mieli takich problemów :D
P-1554
DejaVu
» 2008-09-12 15:51:06
if( 3 <= frame < 6 )
Przecież ten warunek jest nieprawidłowy (zawsze prawdziwy)...
P-1555
Patzick
Temat założony przez niniejszego użytkownika
» 2008-09-12 19:54:07
jak może być zawsze prawdziwy?

jeżeli frame jest większy, lub równy 3 i mniejszy od sześciu

więc jak frame == 2 to wychodzi false

niby inaczej sformułowane niż mówiłeś, ale działa.

Tak samo opisane przy animacji ludka

if (frame<5) {cos}
if {frame<10) {coś}

to też działa, a niby warunek 2 jest zawsze spełniony :D
Pozdrawiam
P-1559
DejaVu
» 2008-09-12 21:53:13
Cóż... widzę, że wiesz lepiej to ja się nie będę z Tobą spierał. Żyj w przekonaniu, że Twoja filozofia myślania jest prawidłowa. Wkońcu co ja mogę wiedzieć o programowaniu... Dodam więcej: nawet nie pofatygowałeś się skompilować programu, który napisałem Ci, żebyś sobie uświadomił jak poważny błąd programistyczny robisz.

Zamykam temat.
P-1560
1 « 2 »
Poprzednia strona Strona 2 z 2