Bartaz Temat założony przez niniejszego użytkownika |
... » 2010-02-02 17:48:38 Za bardzo mi to nie wychodzi,wiem ,że ci się nie chcę ale mógłbyś dać to do kodu tak żeby w końcu działało? ;] |
|
kamillo121 |
» 2010-02-02 17:55:18 Szczerzę mówiąc to nie dam bo : Z twojego kodu wynika for me , że kulka sterowana jest z klawiatury ? 1. Kulka ma latać swobodnie chyba a paletkami masz ruszać ? jak tak to po każdym obrocie pętli musisz zwiększać bądź zmniejszać pozycję kulki w zależności w którą stronę leci ale nie zależnie od tego czy ktoś przyciśnie klawisz 2. Zależy jak kulkę , odbijesz to tak powinna lecieć , (ale jak na początek można "zakrzywić " lot piłeczki losową liczbą było by ciekawiej xD) 3. Na początku kulka moze mięc np kierunek w lewą stronę czyli np można zrobić zmienną która ma wartości 0(kierunek w lewo) i 1 (kierunek w prawo). Oczywiście zmieniać tę wartość np , jeżeli wykryje kolizję w osi x z paletką , wtedy zmienić kierunek na przeciwny ;]
Jakbym dał do kodu kolizję to i tak wiele by to nie dało , bo kulka leciała by tylko w jedną stronę a potem by się zatrzymywała po odbiciu od paletki ;] Chyba , że nie o to chodzi w tej grze ;-] |
|
Bartaz Temat założony przez niniejszego użytkownika |
... » 2010-02-02 18:02:43 Na zakrzywienie lotu piłki to chyba mam pomysł. Trudno, może ktoś inny coś wymyśli a ja spróbuje narazie z tym swoim sposobem,ale ogólnie to dzięki, |
|
DejaVu |
» 2010-02-02 18:48:34 Wpisz w googlach: Dostaniesz pełno wyników, ponieważ ten temat był wielokrotnie poruszany. Wszystko w sumie krążyło wokół biblioteki Allegro, jednak to nie jest istotne czym się wyświetla grafikę. |
|
Bartaz Temat założony przez niniejszego użytkownika |
... » 2010-02-02 19:18:57 Opracowałem sobie własna kolizje ale coś nie działa. Tu obrazek: http://img188.imageshack.us/img188/2853/beztytuuox.png Kolizja jest wtedy gdy poz_y_kuli(tej duzej glownej) > poz_y_kulki1(czyli tej malem wyrzej na paletce ...) i jezeli poz_y_kuli(tej glownej...)< poz_y_kulki2(tej malej na dole paletki) Te kreski na paletce to obszar gddzie to wyzej powinno byc spelnione. Ale nie dziala dlaczego? Przepraszam ze tak napisane ale sie spiesze #include <SDL/SDL.h>
SDL_Surface * paletka1 = NULL; SDL_Surface * paletka2 = NULL; SDL_Surface * tlo = NULL; SDL_Surface * ekran = NULL; SDL_Surface * pilka = NULL; SDL_Surface * kulka1 = NULL; SDL_Surface * kulka2 = NULL; SDL_Event zdarzenie; SDL_Rect LudekDestination; SDL_Rect Paletka1Destination; SDL_Rect Paletka2Destination; SDL_Rect TloDestination; SDL_Rect PilkaDestination; SDL_Rect Kulka1Destination; SDL_Rect Kulka2Destination; Uint8 * keystate = SDL_GetKeyState( NULL );
int x = 70, y = 70; int e = 900, r = 500; int a = 0, s = 0; int f = 370, g = 170; int poz_x_kulki1 = 100, poz_y_kulki1 = 250; int poz_x_kulki2 = 100, poz_y_kulki2 = 100; bool wyjscie = false; int main( int argc, char * args[] ) { ekran = SDL_SetVideoMode( 1027, 768, 32, SDL_SWSURFACE ); tlo = SDL_LoadBMP( "Grafika/Tlo.bmp" ); paletka1 = SDL_LoadBMP( "Grafika/Paletka1.bmp" ); paletka2 = SDL_LoadBMP( "Grafika/Paletka2.bmp" ); pilka = SDL_LoadBMP( "Grafika/pilka.bmp" ); kulka1 = SDL_LoadBMP( "Grafika/kulka1.bmp" ); kulka2 = SDL_LoadBMP( "Grafika/kulka2.bmp" ); while( !wyjscie ) { while( SDL_PollEvent( & zdarzenie ) ) { if( zdarzenie.type == SDL_QUIT ) { wyjscie = true; } } if( keystate[ SDLK_UP ] ) { f = f + 37; r = r - 37; } if( keystate[ SDLK_DOWN ] ) { r = r + 27; } if( keystate[ SDLK_w ] ) { y = y - 37; poz_y_kulki2 = poz_y_kulki2 - 37; poz_y_kulki1 = poz_y_kulki1 - 37; } if( keystate[ SDLK_s ] ) { y = y + 37; poz_y_kulki2 = poz_y_kulki2 + 37; poz_y_kulki1 = poz_y_kulki1 + 37; } if(( g > poz_y_kulki2 ) &&( g < poz_y_kulki1 ) ) { g = g =- 300; } Paletka1Destination.x = x; Paletka1Destination.y = y; Paletka2Destination.x = e; Paletka2Destination.y = r; TloDestination.x = a; TloDestination.y = s; PilkaDestination.x = f; PilkaDestination.y = g; Kulka2Destination.x = poz_x_kulki2; Kulka2Destination.y = poz_y_kulki2; Kulka1Destination.x = poz_x_kulki1; Kulka1Destination.y = poz_y_kulki1; SDL_SetColorKey( paletka1, SDL_SRCCOLORKEY, SDL_MapRGB( paletka1->format, 255, 0, 255 ) ); SDL_SetColorKey( paletka2, SDL_SRCCOLORKEY, SDL_MapRGB( paletka2->format, 255, 0, 255 ) ); SDL_SetColorKey( pilka, SDL_SRCCOLORKEY, SDL_MapRGB( pilka->format, 255, 0, 255 ) ); SDL_BlitSurface( tlo, NULL, ekran, & TloDestination ); SDL_BlitSurface( paletka1, NULL, ekran, & Paletka1Destination ); SDL_BlitSurface( paletka2, NULL, ekran, & Paletka2Destination ); SDL_BlitSurface( pilka, NULL, ekran, & PilkaDestination ); SDL_BlitSurface( kulka2, NULL, ekran, & Kulka2Destination ); SDL_BlitSurface( kulka1, NULL, ekran, & Kulka1Destination ); SDL_Flip( ekran ); } SDL_FreeSurface( paletka1 ); SDL_FreeSurface( paletka2 ); SDL_FreeSurface( kulka1 ); SDL_FreeSurface( kulka2 ); SDL_FreeSurface( tlo ); SDL_Quit(); return 0; }
kolzija if((g>poz_y_kulki2)&&(g<poz_y_kulki1)) { g=g=-300; } EDIT////////////// Znaczy musze jeszcze dac zeby sie odbijalo dopiero jak dotknie a nie jak poprostu jest rownolegle z pilka EDIT////// Tak patrze na ten kody i w sumie to takie cos jest chyba niemozliwe xD if((g>poz_y_kulki2)&&(g<poz_y_kulki1)) { g=g=-300; } |
|
Bartaz Temat założony przez niniejszego użytkownika |
... » 2010-02-02 19:51:00 Działa!!!!!!!!!!!!!!!!!!!!!!! W końcu mi się udało oczywiście dzięki waszej pomocy dzieki wszystkim temat do zamkniecia :) |
|
1 « 2 » |