CSoldier
25/08/2005, 15h54
Bonjour,
je travail en ce moment sur un ptit moteur 2D à but de perfectionnement sur la SDL mais aussi pour plus tard créer un CivLike. Bon, en ce moment je travail sur le déplacement de la carte dans la zone de jeu mais le problème, c'est que lorsque je descend la souris, la carte devrait remonter donc passer en mosition Y négative mais ca ne veut pas le faire, ca repasse directement en position Y = 0 !
Je ne vois pas comment résoudre se problème. Voici mon code mais je doute que le problème vienne de mon code car j'ai beau tout tester y'a rien a faire:
void CS2DENGINE_MoveMap (SDL_MouseMotionEvent *p_event,
Map_s *p_map,
SDL_Surface *p_screen)
{
signed short mouse_x, mouse_y;
/* Si aucun evennement n'est gere, on sort de la fonction */
if (!p_event) return;
if (p_event->type == SDL_MOUSEMOTION)
{
if (p_event->state & SDL_BUTTON (SDL_BUTTON_LEFT))
{
/* Stockage de la position courante de la souris pour
la comparer avec les anciennes coordonnees */
mouse_x = p_event->x;
mouse_y = p_event->y;
/* Gestion du deplacement horizontal */
if (mouse_x > old_mouse_x)
{
p_map->map_rect.x -= DEF_TILE_WIDTH / 2;
}
else if (mouse_x < old_mouse_x)
{
p_map->map_rect.x += DEF_TILE_WIDTH / 2;
}
/* Gestion du deplacement vertical */
if (mouse_y > old_mouse_y)
{
p_map->map_rect.y -= DEF_TILE_HEIGHT / 2;
}
else if (mouse_y < old_mouse_y)
{
p_map->map_rect.y += DEF_TILE_HEIGHT / 2;
if (p_map->map_rect.y > 0)
{
p_map->map_rect.y = 0;
}
}
}
}
/* Stockage des anciennes coordonnees de la souris */
old_mouse_x = mouse_x;
old_mouse_y = mouse_y;
}
Merci d'avance pour vos illuminations :00000014:
je travail en ce moment sur un ptit moteur 2D à but de perfectionnement sur la SDL mais aussi pour plus tard créer un CivLike. Bon, en ce moment je travail sur le déplacement de la carte dans la zone de jeu mais le problème, c'est que lorsque je descend la souris, la carte devrait remonter donc passer en mosition Y négative mais ca ne veut pas le faire, ca repasse directement en position Y = 0 !
Je ne vois pas comment résoudre se problème. Voici mon code mais je doute que le problème vienne de mon code car j'ai beau tout tester y'a rien a faire:
void CS2DENGINE_MoveMap (SDL_MouseMotionEvent *p_event,
Map_s *p_map,
SDL_Surface *p_screen)
{
signed short mouse_x, mouse_y;
/* Si aucun evennement n'est gere, on sort de la fonction */
if (!p_event) return;
if (p_event->type == SDL_MOUSEMOTION)
{
if (p_event->state & SDL_BUTTON (SDL_BUTTON_LEFT))
{
/* Stockage de la position courante de la souris pour
la comparer avec les anciennes coordonnees */
mouse_x = p_event->x;
mouse_y = p_event->y;
/* Gestion du deplacement horizontal */
if (mouse_x > old_mouse_x)
{
p_map->map_rect.x -= DEF_TILE_WIDTH / 2;
}
else if (mouse_x < old_mouse_x)
{
p_map->map_rect.x += DEF_TILE_WIDTH / 2;
}
/* Gestion du deplacement vertical */
if (mouse_y > old_mouse_y)
{
p_map->map_rect.y -= DEF_TILE_HEIGHT / 2;
}
else if (mouse_y < old_mouse_y)
{
p_map->map_rect.y += DEF_TILE_HEIGHT / 2;
if (p_map->map_rect.y > 0)
{
p_map->map_rect.y = 0;
}
}
}
}
/* Stockage des anciennes coordonnees de la souris */
old_mouse_x = mouse_x;
old_mouse_y = mouse_y;
}
Merci d'avance pour vos illuminations :00000014: