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

[Allegro] Szybkość poruszania mapą

Ostatnio zmodyfikowano 2011-12-31 19:08
Autor Wiadomość
waxx
» 2011-12-28 14:10:06
Czy ty przez dwie strony masz problem z dodaniem 0.5f do zmiennej? No ludzie........ Czemu zabieracie sie za allegro jak podstaw nie ma.
P-46461
Winner
Temat założony przez niniejszego użytkownika
» 2011-12-28 14:19:54
Tak mam taki problem, moim zdaniem znam podstawy... Poradziłem sobie z kolizją, zrobiłem skok, mapę kafelkową ale po prostu się za szybko przesuwa,jeżeli wiesz jak to zrobić to po prostu powiedz. Bo jak po prostu dodam do zmiennej 0.5 to nic się nie stanie...

PS: Dodatkowy timer tylko do poruszania się by pomógł?



pekfos jeżeli dobrze zrozumiałem Twój przykład to wiem (nawet bez patrzenia), że moja postać będzie się poruszać z przerwami... Bo zanim prat == maxpart to postać będzie stać... I poruszy się dopiero jak part bedzie 0 i potem znowu przerwa...
P-46464
pekfos
» 2011-12-28 14:26:17
Mój przykład z part to rodzaj timera. A problem z 0.5f to tylko nieznajomość podstaw.

pekfos jeżeli dobrze zrozumiałem Twój przykład to wiem (nawet bez patrzenia), że moja postać będzie się poruszać z przerwami... Bo zanim prat == maxpart to postać będzie stać... I poruszy się dopiero jak part bedzie 0 i potem znowu przerwa...
Nie. Jakbyś zrozumiał to byś się domyślił że part posłuży jeszcze w funkcji wyświetlającej do wyświetlania fragmentów kafli(Płynnego scrollingu)
P-46466
Winner
Temat założony przez niniejszego użytkownika
» 2011-12-28 16:12:59
@pekfos a jednak! Ludek porusza się z przerwami.
P-46487
RazzorFlame
» 2011-12-28 16:16:02
... Jesli ci cos to pomoze to ci wytłumacze. Masz powiedzmy takie cos:


C/C++
//mape masz typu short int

double mappoz_x, mappoz_y = 0;

if( klawisz itd )
{
   
    mappoz_x + 0.2;
   
}

//...

void wys_mape()
{
    //...
    for(...)
    {
        for(...)
        {
            if( map[( licznik_x ) +( int ) mappoz_x ][( licznik_y ) +( int ) mappoz_y ] == 0 ) //...
            //...
        }
    }
   
}
P-46489
Winner
Temat założony przez niniejszego użytkownika
» 2011-12-28 16:19:23
Próbowałem też z double. Ale i tak mam błąd w tej linijce:
(map[licznik_y + mapa_y][licznik_x + mapa_x]%4) * 50,

A co rozumiesz przez to, że mapę mam w short int?
P-46490
RazzorFlame
» 2011-12-28 16:32:41
short int map[...][...] <---
Nie zobaczyłes dobrze kodu!
Tam w wyswietlaniu masz z rzutowaniem!
C/C++
if( map[ licznik_x +( int ) mappoz_x ]...)
EDIT:
Tak wgle to jakim cudem ty chcesz dodać double do int?? Własnie musisz to rzutować!!! Mozesz to zrobic tak jak u góry ci napisałem.
P-46495
Winner
Temat założony przez niniejszego użytkownika
» 2011-12-28 18:36:19
if( map[( licznik_x ) +( int ) mappoz_x ][( licznik_y ) +( int ) mappoz_y ] == 0 )
  po co mi ta linijka? Ja jej w programie nie mam. Nie wiem po co bym miał to ustawiać na 0.

Mam takie coś
C/C++
blit( teren, bufor,
( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 50,
( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 50,
licznik_x * 50, licznik_y * 50, 50, 50 );

I teraz wystarczy przed mapa_x dodać (int)??
P-46509
1 2 « 3 » 4 5 6 7 8 9 10 11 12
Poprzednia strona Strona 3 z 12 Następna strona