Winner Temat założony przez niniejszego użytkownika |
» 2011-12-30 20:47:46 A jaka według Ciebie jest normalna? ;D A jakbym chciał przejść na Allegro5 to muszę od nowa pisać moją grę czy tylko zmienić kilka funkcji? |
|
SeaMonster131 |
» 2011-12-30 20:53:50 SFML, Allegro5, @ison dopowie: OpenLayer. :) 5 od 4 różni sie, no wszystkim ;) Już nie pamietam o co Ci chodziło z tą szybkością, ale też możesz zrobić coś w stylu takiego opóźnienia: int czas = 0;
if( klawisz_w_prawo && czas == 0 ) czas = 10;
if( czas > 0 ) { mapa_x++; czas--; }
|
|
ison |
» 2011-12-30 21:10:01 @Sea dziękuję, że mnie wyprzedziłeś :D @Winner ogólnie fakt, że 'nie możesz' wyświetlić bitmapy na floatowej pozycji nie zmienia kompletnie nic, tak czy inaczej możesz rzutować na inta tuż przy wyświetlaniu kafla a sprite'a w połowie piksela tak czy inaczej nie wyświetlisz, allegro 4 to na początek dobry wybór imho, zapewniam Cię, że da się w nim zrobić na prawdę przyjazną i grywalną grę i w niczym na tym etapie nauki nie będzie Cię ograniczał - jedyne co to wydajność. Allegro 4 nie jest wspomagane przez kartę graficzną, dokładnie to samo tyczy się SDL, wszystko co wyświetlasz zamiast przejść przez kartę graficzną przechodzi przez procka co mocno spowalnia aplikację. SDL jako tako do obsługi klawiatury, myszki itd. jest ok, ale na pewno nie do wyświetlania grafiki :) Jeśli już na prawdę będziesz chciał zmienić bibliotekę to wybierz taką, która ma wspomaganie GPU: SFML, OpenLayer A jakbym chciał przejść na Allegro5 to muszę od nowa pisać moją grę czy tylko zmienić kilka funkcji?
|
sporo zmian byś musiał zrobić, imho lepiej dla Ciebie zostać przy allegro 4 Okey. Mam mapę kafelkową. Wyświetlam ją za pomocą kodu:
void wys_mape() { short int licznik_x, licznik_y; for( licznik_x = 0; licznik_x < 50; licznik_x++ ) { for( licznik_y = 0; licznik_y < 20; licznik_y++ ) { 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 ); } } };
Przesuwam za pomocą kodu:
if( key[ KEY_RIGHT ] && RodzajTerenuDolL == 0 && RodzajTerenuDolP == 0 || key[ KEY_RIGHT ] && RodzajTerenuDolP > 0 && RodzajTerenuGorP > 0 && RodzajTerenuDolL == 0 ) { mapa_x++ }
I mapa prszesuwa się dobrze. Tylko, że za szybko.
|
mapa_x i mapa_y zadeklaruj jako float wyświetlanie zmień na blit( teren, bufor, (( map[ licznik_y +( int ) mapa_y ][ licznik_x +( int ) mapa_x ] % 4 ) * 50 ), (( map[ licznik_y +( int ) mapa_y ][ licznik_x +( int ) mapa_x ] / 4 ) * 50 ), licznik_x * 50, licznik_y * 50, 50, 50 );
przesuwanie zmień na już pomijam to, że powinieneś przesuwać o deltę a nie o stałą, ale to już inna kwestia |
|
Winner Temat założony przez niniejszego użytkownika |
» 2011-12-30 21:23:15 Zmieniłem tak jak mówiłeś. Ale teraz są błędy w tej linijce: y = floor( mario_y / 50 ); I pytanie: Czy muszę przed każdym "mario_x" dodawać (int)?? |
|
Winner Temat założony przez niniejszego użytkownika |
» 2011-12-30 21:34:39 Okey, zrobiłem tak, że nie mam błędów. Przed każdym mapa_x dodałem (int) i program się uruchamia mapę przesuwa mi wolniej ale nie zadowala mnie płynność tego przesuwania... |
|
RazzorFlame |
» 2011-12-30 21:37:34 Tak z czystej ciekawości: masz wgle dodane timery? Przeciez moze nimi zwalniac i przyspieszac! EDIT: Nie rób wyświetlania mapy funkcją easykodera! Rob cos takiego: if( map[ licznik_y ][ licznik_x ] == 0 ) blit(...);
Tak jest bardziej czytelnie... EEeee jeszcze 1. Ty w 3 i 4 argumencie dodajesz pozycje mapy??? To do jasnej ch***** jest przeciez jaki kawalek ma wyswietlic... EDIT x2: Sory chyba juz to rozwiazałes... |
|
ison |
» 2011-12-30 21:45:19 I pytanie: Czy muszę przed każdym "mario_x" dodawać (int)??
|
niet, ważne aby przy odwoływaniu się do komórki tablicy zmienna była typu całkowitego @RazzorFlame nawet nie zauważyłem tego ;D rzeczywiście w pozycji wyświetlanej bitmapy też by się przydało coś dodawać, nie dziwne, że mapa 'nie przesuwa się płynnie' :) |
|
Winner Temat założony przez niniejszego użytkownika |
» 2011-12-30 21:53:18 @ison a możesz dokładniej powiedzieć co mam tam dodawać? Jak coś dodam w miejsca to mi tworzy te niechciane kafelki (co ten film dałem)
@RazzorFlame Mam nie rysować funkcją easykodera bo jest mało czytelnie czy to coś ważniejszego? |
|
1 2 3 4 5 6 « 7 » 8 9 10 11 12 |