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

[Allegro 4, C++] Poruszanie postacią w tablicy

Ostatnio zmodyfikowano 2013-06-13 13:03
Autor Wiadomość
Fanatone
Temat założony przez niniejszego użytkownika
[Allegro 4, C++] Poruszanie postacią w tablicy
» 2013-06-08 11:32:21
Witam.

Borykam się z pewnym problemem odnośnie wyświetlania ludka na tablicy.

Zrobiłem to w podobny sposób jak na stronie Easykoder.

zmienne postaci i tablica wyglądają następująco:
C/C++
int postac_x = 3, postac_y = 0;
int mapa[ 10 ][ 20 ] =
{
    0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
};

Chcę przemieszczać tą 2. Na początek chciałbym aby postać spadała gdy pod sobą ma 0. Jak mógłbym napisać taką instrukcję?
Wymyśliłem sobie taki sposób jeśli ktoś zna lepszy to byłbym wdzięczny za nakierowanie.
P-85138
DanielSC
» 2013-06-08 14:03:39
Spróbuj może tak.
C/C++
if( mapa[ postac_y ][ postac_x ] == 0 )
{
    postac_y += 1;
}
P-85152
pekfos
» 2013-06-08 17:59:32
Chcę przemieszczać tą 2
Nie umieszczaj postaci na mapie w ten sposób. Teren to jedno, a postacie i inne dynamiczne elementy to drugie.
P-85182
Fanatone
Temat założony przez niniejszego użytkownika
» 2013-06-09 13:28:53
Też tak myślałem, że nie jest to dobre rozwiązanie ale inaczej nie wiem jak to wykonać.
Dotychczas wczytywałem jedną bitmapę w której znajdują się tekstury oraz postać.
Zastanawia mnie jak umieścić w takim razie grafikę z postacią i odczytywać wartości z tablicy. Jest jakieś inne rozwiązanie na stworzenie mapy?
P-85244
pekfos
» 2013-06-09 17:18:15
A mnie zastanawia, gdzie ty tu widzisz problem.
P-85263
bingo009
» 2013-06-12 21:47:31
C/C++
struct Postac {
    int x;
    int y;
    bool grawitacja;
};

//Dalej

Postac gracz;
gracz.x = 0;
gracz.y = 0;
gracz.grawitacja = true;

if( kafel_pod_graczem() == 0 )
gracz.grawitacja = true; else
gracz.grawitacja = false;

if( gracz.grawitacja )
     gracz.y++;

if( wcisniety_klawisz() == KLAWISZ_LEWO ) gracz.x--;
//Analogicznie dla reszty

rysuj( gracz.x, gracz.y );

Tu masz sposób bardzo uproszczony na grawitacje i poruszanie postacii.
P-85447
polkom21
» 2013-06-12 22:23:41
Tylko z tego co ja rozumiem autor chce aby postac poruszala sie po kratkach mapy a nie plynnie co piksel
P-85462
MrPoxipol
» 2013-06-13 09:41:17
No to po prostu wystarczy ustawiać pozycje sprite'a mnożąc pozycje gracza przez rozmiar kafla.
P-85473
« 1 » 2
  Strona 1 z 2 Następna strona