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

[Allegro]Kolizje lub coś podobnego

Ostatnio zmodyfikowano 2009-06-24 08:54
Autor Wiadomość
Juziogim3
Temat założony przez niniejszego użytkownika
» 2009-06-22 18:45:17
A można by wkleić gotową mapę rozgrywki(bitmapę) i potem na niej zaznaczyć odpowiednie punkty żeby postać nie wychodziła? Bo jak widać korzystam z gotowych plików graficznych(trochę zmodyfikowanych):

http://www.sprites-inc.co.uk/files/EXE/EXE6/Maps/Net%20Maps/Seaside2.gif
P-7903
DejaVu
» 2009-06-22 19:57:33
1. weź kartkę (w kratkę)
2. narysuj linię pionową
3. napisz warunek dla niej (uniemożliwiający wyjście za nią)
4. weź drugą kartkę (w kratkę)
5. narysuj linię pod kątem
6. napisz warunek dla niej (uniemożliwiający wyjście za nią)
7. odpowiedz sobie na pytanie: co jest łatwiejsze? ptk 3 czy ptk 6
P-7912
Juziogim3
Temat założony przez niniejszego użytkownika
» 2009-06-23 13:38:59
Zrobiłem normalną mapkę i teraz jedyne co mi przychodzi do głowy to napisać taki warunek:
C/C++
if( mapa_x == 0 && mapa_y == 3 ) { mapa_x = 1; wys_mape(); masked_blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); }
Ale niestety to nie działa.
Chciałem więc zobaczyć na jakich współrzędnych jestem więc napisałem:
C/C++
textprintf_ex( bufor, font, 20, 20, makecol( 200, 200, 200 ), - 1, "Mapa x = %d , mapa y = %d ", mapa_x, mapa_y );
No i się dowiedziałem....[że coś tu nie gra]
http://img32.imageshack.us/img32/294/playground222.png
P-7944
pekfos
» 2009-06-23 16:49:06
ależ oczywiście!
przecież twoje x i y to współrzędne lewego górnego rogu wyświetlanej mapy
P-7950
Juziogim3
Temat założony przez niniejszego użytkownika
» 2009-06-23 17:07:11
Wiem, uwzględniłem to... tylko nie wiem czemu powstały mi takie dziwne liczby(mój poprzedni post -> link). Jakby te liczby się zwiększały(lub zmniejszały) się regularnie to już mój warunek by działał. Mój problem właśnie tkwi w tych liczbach ;s

C/C++
if(( key[ KEY_RIGHT ] ) &&( mapa_x < 10 ) ) { mapa_x = mapa_x + 0.05; } // Podejrzewam że to przez te ułamki, ale nie wiem co z tym zrobić
if(( key[ KEY_LEFT ] ) &&( mapa_x > 0 ) ) { mapa_x = mapa_x - 0.05; }
if(( key[ KEY_DOWN ] ) &&( mapa_y < 10 ) ) { mapa_y = mapa_y + 0.05; }
if(( key[ KEY_UP ] ) &&( mapa_y > 0 ) ) { mapa_y = mapa_y - 0.05; } // A poza tym skoro pokazują mi się takie duże liczby przy wyświetlaniu zmiennych to czemu w tym warunki "(mapa_y < 10)" jest wynik true ??!!
P-7952
pekfos
» 2009-06-23 17:13:14
jakiego typu masz te zmienne?? unsigned?
P-7953
Juziogim3
Temat założony przez niniejszego użytkownika
» 2009-06-23 17:32:17
float (zwykły ;p)-> bo przeczytałem w innym temacie że to spowolni mi scrolowanie mapy
P-7954
pekfos
» 2009-06-23 19:05:23
dodaj parę rzędów kafli na początku osi x i y czyli np:
masz tak:
|---|
 |   |
 |---|
to zrób tak:


   |---|
   |   |
   |---|
aby zrobić mały margines aby stojąc na kaflu
najbliższym punktu 0 mapy nie była wyświetlona
mapa o współrzędnych -1,-1
w warunkach od kolizji używaj x+ (np.) 5 y+ (np.) 4
czyli współrzędnych ludka na mapie.
te przykładowe 5 i 4 to odległości ludka na wyświetlanej
mapie od punktu 0,0 wyświetlanej mapy w kaflach
P-7955
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona