Mail Archives: djgpp/2000/07/28/09:04:31
hello.
Im building a game with allegro/djgpp
i have 2 functions, but my program is slow to get the keys
(up, left, right and left)
/// KEYS ///
int a_key;
int s_key;
int d_key;
int z_key;
int x_key;
int c_key;
int left_key;
int right_key;
int up_key;
int down_key;
int esc_key;
int enter_key;
int selected = 0;
int selected_x;
int selected_y;
int key_pressed;
int arrow_pressed;
void get_move(void)
{
if (key[KEY_ENTER]) {enter_key++; key_pressed = 1; selected = 1;}
if (key[KEY_ESC]) exit_game = 1;
if (key[KEY_UP]) {up_key++; arrow_pressed = 1;}
if (key[KEY_DOWN]) {down_key++; arrow_pressed = 1;}
if (key[KEY_LEFT]) {left_key++; arrow_pressed = 1;}
if (key[KEY_RIGHT]) {right_key++; arrow_pressed = 1;}
if (key[KEY_A]) {a_key++; key_pressed = 1; selected = 1;}
if (key[KEY_S]) {s_key++; key_pressed = 1;}
if (key[KEY_D]) {d_key++; key_pressed = 1;}
if (key[KEY_Z]) {z_key++; key_pressed = 1;}
if (key[KEY_X]) {x_key++; key_pressed = 1;}
if (key[KEY_C]) {c_key++; key_pressed = 1;}
if (up_key > 0) selected_y--;
else if (down_key > 0) selected_y++;
if (left_key > 0) selected_x--;
else if (right_key > 0) selected_x++;
}
and play_sample(...); // if key is pressed
void menu(void)
{
int done = 0;
while (!done)
{
get_move();
clear(buffer);
// do some thing with selected_x or y
blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
play_fx();
unpress_all_key();
}
}
but in my game, if i press any arrow key, the play_sample is called but the
cursor is not
moved.
someone can to tell me what i need to change.
or send me an example
maybe is because i use 24bit color and 640x480 resolution
obs: My english is not good... :-(
[]s
Rogerio
- Raw text -