A voir également:
- Allegro souris
- Comment activer le pavé tactile sans souris - Guide
- Autoclick souris - Télécharger - Divers Utilitaires
- Souris ordinateur - Guide
- Curseur souris disparu - Guide
- Souris inversée - Guide
2 réponses
Bonjour,
il faut d'abord savoir que par défaut, les coordonnées de ta souris te sont données par : mouse_x et mouse_y.
A partir de cela, il te suffit de créer un algorithme du type : (cest simplifié) :
#include <stdio.h>
#include <stdlib.h>
#include <allegro.h>
int main()
{
allegro_init(); // init allegro
install_keyboard(); // pour avoir le clavier
install_mouse(); // pour avoir la souris
srand(time(NULL)); // pour suite de nombrea aléatoires
set_color_depth(16); // couleurs 16 bits
set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0); //window 800x600
BITMAP *page; //notre double buffer
page=create_bitmap(SCREEN_W,SCREEN_H);
show_mouse(screen); //on voit la souris a l'écran
int pos_x = 100; //position x initiale
int pos_y = 100; //position y initiale
int clicx;
int clicy; //nos coordonnées de la souris quand on clic
rectfill(screen,pos_x,pos_y,pos_x+10,pos_y+10,makecol(255,255,255)); //on affiche notre 'personnage' initialement
while (!key[KEY_ESC]) //tant qu'on appuie pas sur la touche ESC
{
if (mouse_b & 1) // Si lutilisateur clique sur le bouton gauche de la souris
{
clicx=mouse_x;
clicy=mouse_y; //on garde en mémoire le clic de lutilisateur
while (pos_x != clicx || pos_y != clicy)
{
clear_bitmap(page); //on efface notre DB
if (pos_x < clicx) //si le perso est a gauche de lendroit darrivee
pos_x++; // on augmente labcisse du perso > on va a droite
else if (pos_x > clicx) //si le perso est a gauche de lendroit darrivee
pos_x--;// on diminue labcisse du perso > on va a gauche
else if (pos_y < clicy) //si le perso est en haut de lendroit darrivee
pos_y++;// on augmente l'oordonnee du perso > on va en bas
else if (pos_y > clicy) //si le perso est en bas de lendroit darrivee
pos_y--;// on diminue l'ordonnee du perso > on va en haut
rectfill(page,pos_x,pos_y,pos_x+10,pos_y+10,makecol(255,255,255)); //on affiche notre 'personnage'
blit(page,screen,0,0,0,0,SCREEN_W,SCREEN_H); // on affiche notre DB a lecran
}
}
}
}END_OF_MAIN();
Avec ça, on obtient un simple rendu d'un carré qui se balade grace à un déplacement souris. Il ne te reste plus qu'à remplacer le carré par l'image de ton personnage, et le tour est joué !
il faut d'abord savoir que par défaut, les coordonnées de ta souris te sont données par : mouse_x et mouse_y.
A partir de cela, il te suffit de créer un algorithme du type : (cest simplifié) :
#include <stdio.h>
#include <stdlib.h>
#include <allegro.h>
int main()
{
allegro_init(); // init allegro
install_keyboard(); // pour avoir le clavier
install_mouse(); // pour avoir la souris
srand(time(NULL)); // pour suite de nombrea aléatoires
set_color_depth(16); // couleurs 16 bits
set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0); //window 800x600
BITMAP *page; //notre double buffer
page=create_bitmap(SCREEN_W,SCREEN_H);
show_mouse(screen); //on voit la souris a l'écran
int pos_x = 100; //position x initiale
int pos_y = 100; //position y initiale
int clicx;
int clicy; //nos coordonnées de la souris quand on clic
rectfill(screen,pos_x,pos_y,pos_x+10,pos_y+10,makecol(255,255,255)); //on affiche notre 'personnage' initialement
while (!key[KEY_ESC]) //tant qu'on appuie pas sur la touche ESC
{
if (mouse_b & 1) // Si lutilisateur clique sur le bouton gauche de la souris
{
clicx=mouse_x;
clicy=mouse_y; //on garde en mémoire le clic de lutilisateur
while (pos_x != clicx || pos_y != clicy)
{
clear_bitmap(page); //on efface notre DB
if (pos_x < clicx) //si le perso est a gauche de lendroit darrivee
pos_x++; // on augmente labcisse du perso > on va a droite
else if (pos_x > clicx) //si le perso est a gauche de lendroit darrivee
pos_x--;// on diminue labcisse du perso > on va a gauche
else if (pos_y < clicy) //si le perso est en haut de lendroit darrivee
pos_y++;// on augmente l'oordonnee du perso > on va en bas
else if (pos_y > clicy) //si le perso est en bas de lendroit darrivee
pos_y--;// on diminue l'ordonnee du perso > on va en haut
rectfill(page,pos_x,pos_y,pos_x+10,pos_y+10,makecol(255,255,255)); //on affiche notre 'personnage'
blit(page,screen,0,0,0,0,SCREEN_W,SCREEN_H); // on affiche notre DB a lecran
}
}
}
}END_OF_MAIN();
Avec ça, on obtient un simple rendu d'un carré qui se balade grace à un déplacement souris. Il ne te reste plus qu'à remplacer le carré par l'image de ton personnage, et le tour est joué !
8 mai 2009 à 23:26
10 mai 2009 à 14:34
10 mai 2009 à 14:37
En tout cas merci de votre aide même si je suis dans le mzi... Les deux autres avec qui je suis ne travaille pas du tout.Résultat j'ai tout fais tout seul un maximum et je n'ai que 400 lignes de code.C'est triste la vie....Bonne journée monsieur ECE
4 mars 2015 à 22:31
merci