Skocz do zawartości

C grawitacja


szpaq99

Rekomendowane odpowiedzi

do tego nie trzeba biblioteki. co ramke dodajesz jakas wartosc do pozycji y i voila.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
#include <allegro.h>

 

volatile long speed = 0;

 

void increment_speed()

{

speed++;

}

END_OF_FUNCTION(increment_speed);

 

LOCK_VARIABLE(speed);

LOCK_FUNCTION(increment_speed);

 

int main()

{

allegro_init();

install_keyboard();

set_color_depth(16);

set_gfx_mode(GFX_AUTODETECT_WINDOWED,640,480,0,0);

 

install_timer();

install_int_ex(increment_speed, BPS_TO_TIMER(100));

 

BITMAP *bufor = NULL;

BITMAP *ludek = NULL;

BITMAP *ludek1 = NULL;

BITMAP *ludek2 = NULL;

BITMAP *ludek3 = NULL;

 

bufor = create_bitmap(640,480);

if (!bufor)

{

set_gfx_mode(GFX_TEXT,0,0,0,0);

allegro_message("Nie mogę utworzyć bufora !");

allegro_exit();

return 0;

}

 

ludek = load_bmp("ludek.bmp",default_palette);

if (!ludek)

{

set_gfx_mode(GFX_TEXT,0,0,0,0);

allegro_message("nie mogę załadować obrazka Ludek !");

allegro_exit();

return 0;

}

 

int ludek_x = 100, ludek_y = 100;

 

while( !key[KEY_ESC])

{

while( speed > 0)

{

if( key[KEY_LEFT]) ludek_x--;

if( key[KEY_RIGHT]) ludek_x++;

if( key[KEY_UP]) ludek_y--;

if( key[KEY_DOWN]) ludek_y++;

 

speed--;

}

 

clear_to_color(bufor, makecol(150,150,150));

masked_blit( ludek, bufor, 0,0, ludek_x, ludek_y, ludek->w, ludek->h);

blit( bufor, screen, 0,0,0,0, 640,480);

}

 

remove_int( increment_speed);

 

destroy_bitmap(ludek);

destroy_bitmap(bufor);

allegro_exit();

return 0;

}

END_OF_MAIN();

 

Mam taki kod mojej gierki ale za h*ja nie wiem jak zrobić tą grawitacje i skakanie czy cuś za pomoc creditsy w mojej gierce, która wyjdzie napewno narazie prawie nic nie mam zrobione ale to z czasem będe rozbudowywał

Odnośnik do komentarza
Udostępnij na innych stronach

kazdy obiekt musi miec swoja pozycje [x;y] i dajesz: obiekt.y+=8; czy: obiekt->y+=8; jesli to wskaznik. jak nei masz nic w grze to pierw zbuduj fundamenty - klasy aktorow i ich wlasciwosci. ja sobie tak w xenonowym frameworku zrobilem i teraz mam z gorki, bo wszystko jest zobiektowane, tak jak nalerzy robic.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
#include <allegro.h>

 

volatile long speed = 0;

 

void increment_speed()

{

speed++;

}

END_OF_FUNCTION(increment_speed);

 

LOCK_VARIABLE(speed);

LOCK_FUNCTION(increment_speed);

 

int main()

{

allegro_init();

install_keyboard();

set_color_depth(16);

set_gfx_mode(GFX_AUTODETECT_WINDOWED,640,480,0,0);

 

install_timer();

install_int_ex(increment_speed, BPS_TO_TIMER(100));

 

BITMAP *bufor = NULL;

BITMAP *ludek = NULL;

BITMAP *ludek1 = NULL;

BITMAP *ludek2 = NULL;

BITMAP *ludek3 = NULL;

 

bufor = create_bitmap(640,480);

if (!bufor)

{

set_gfx_mode(GFX_TEXT,0,0,0,0);

allegro_message("Nie mogę utworzyć bufora !");

allegro_exit();

return 0;

}

 

ludek = load_bmp("ludek.bmp",default_palette);

if (!ludek)

{

set_gfx_mode(GFX_TEXT,0,0,0,0);

allegro_message("nie mogę załadować obrazka Ludek !");

allegro_exit();

return 0;

}

 

int ludek_x = 100, ludek_y = 100;

 

while( !key[KEY_ESC])

{

while( speed > 0)

{

if( key[KEY_LEFT]) ludek_x--;

if( key[KEY_RIGHT]) ludek_x++;

if( key[KEY_UP]) ludek_y--;

if( key[KEY_DOWN]) ludek_y++;

 

speed--;

}

 

clear_to_color(bufor, makecol(150,150,150));

masked_blit( ludek, bufor, 0,0, ludek_x, ludek_y, ludek->w, ludek->h);

blit( bufor, screen, 0,0,0,0, 640,480);

}

 

remove_int( increment_speed);

 

destroy_bitmap(ludek);

destroy_bitmap(bufor);

allegro_exit();

return 0;

}

END_OF_MAIN();

 

Mam taki kod mojej gierki ale za h*ja nie wiem jak zrobić tą grawitacje i skakanie czy cuś za pomoc creditsy w mojej gierce, która wyjdzie napewno narazie prawie nic nie mam zrobione ale to z czasem będe rozbudowywał

1.

h*ja
przez CH piszemy to słowo O_O

2. ten kod jest z kursu allegro: http://kursy.ddt.pl/?LessonId=153

3. ludek_y += grawitacja ;o

 

BTW. PsichiX:

nalerzy
xD
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...