wiktor16s Temat założony przez niniejszego użytkownika |
» 2012-02-10 22:54:36 xD Skończona czy nie, wracajmy do rdzenia tematu,
Może jakieś pomysły z zastosowaniem tutaj goto?
Choć słyszałem że goto straasznie zmniejsza fpsy ;/
Wolałbym ifa ;P |
|
Dawidsoni |
» 2012-02-10 23:30:06 Wątpię, żeby goto zmniejszyło ci bardzo fpsa, ale raczej się go nie używa. Jak ci to z main() nie działa, to weź wszystko w nieskończoną pętlę while (oprócz ładowania grafik itd., bo po co 2 razy to robić?), i piszesz tak: if( zresetowac_aplikacje ) continue;
|
|
wiktor16s Temat założony przez niniejszego użytkownika |
» 2012-02-10 23:50:16 Czyli wszystko prócz biblioteki i ładowania obrazków do 1 wielkiej pętli nieskończonej.
hmm
trochę to zagmatwane bo jak już pisałem mój kod prezentuje się tak:
intigery
biblioteki
definicja mapy
bitmap*#=NULL;
wys_mape
pętle ze sterowaniem
Ograniczenia
obliczanie prędkości cząsteczkowych
wyświetlanie grafiki
zamalowywanie bufora
niszczenie
i end
jak to niby mam wziąć w jedną pętle?
chcesz to moge dać ci kod to zobaczysz o czym mówie ;P
chyba że tak:
int zresetowac_aplikacje // mam zadeklarować to tu czy gdzie?
{
intigery
biblioteki
definicja mapy
bitmap*#=NULL;
wys_mape
pętle ze sterowaniem
Ograniczenia
obliczanie prędkości cząsteczkowych
wyświetlanie grafiki
zamalowywanie bufora
niszczenie
i end
}
if( zresetowac_aplikacje )
continue;
chodzi ci o coś takiego? |
|
Gronek8624 |
» 2012-02-11 11:10:57 Hmm Patrze i łapię się za głowę XD Ale dobra W miejscu obliczanie prędkości cząsteczkowych -- Jak zgaduje to tutaj są podawane pozycje przed wyświetleniem dajesz if( R ) { res = 1; }
if( res ) { odliczanie--; if( odliczanie == 0 ) { res = 0; } } kod napisany w 5 min wiec mogą być błędy :) |
|
wiktor16s Temat założony przez niniejszego użytkownika |
» 2012-02-11 12:37:07 Nie do końca:
// tu mam wszystkie ograniczenia
if( kierunek > 71 ) kierunek = 0;
if( kierunek < 0 ) kierunek = 71;
if( v > 0.7 ) v = 0.7;
if( v <- 0.2 ) v =- 0.2;
if ( samochod == tlo ) v=0.1;
if (sx > 676) sx = 674;
if ( sx< 131) sx = 133;
if (sy < 9) sy = 11;
if (sy > 552 ) sy = 550;
if( sx > 675 ) v = 0.1;
if( sx < 132 ) v = 0.1;
if( sy < 10 ) v = 0.1;
if( sy > 550 ) v = 0.1;
// tu obliczanie prędkości cząstkowych:
dx += v * tab_cos[ kierunek ];
dy += v * tab_sin[ kierunek ];
// a tutaj przemieszczanie naszego samochodu:
if( dx >= 1 || dx <= - 1 ) { sx += int( dx ); dx = dx - int( dx ); }
if( dy >= 1 || dy <= - 1 ) { sy += int( dy ); dy = dy - int( dy ); }
a pozycje samochodu mam jeszcze przed funkcją główną i to wygląda tak:
int samochod_x = 100, samochod_y = 100;
double tab_sin[ 72 ];
double tab_cos[ 72 ];
//zmienne do sterowanie autem:
int sx = 200, sy = 384; // pozycja samochodu na ekranie
double dx = 0, dy = 0, ds = 0, dw = 0; // przesuniecie samochodu po osi X i Y
int kierunek = 54; // aktualny kierunek samochodu
double v = 0; // predkosc naszego samochodu
|
|
kampar |
» 2012-02-11 12:55:10 no to daj w pętlę główną takie coś:
if( reset ) { samochod_x = 100, samochod_y = 100; sx = 200, sy = 384; dx = 0, dy = 0, ds = 0, dw = 0; kierunek = 54; v = 0; }
|
|
wiktor16s Temat założony przez niniejszego użytkownika |
» 2012-02-11 13:10:53 W główną w sterowanie czy poza?
a int reset;
i
if( key[ KEY_R ] )reset;
? |
|
SeaMonster131 |
» 2012-02-11 13:15:04 Każdy kto pisze gry musiał jakąś zacząć, ale spójrz najpierw tu: Kurs C++, bo bez tego daleko nie zajdziesz. Nie ma drogi na skróty. |
|
1 « 2 » 3 |