2010-08-03 8 views
0

J'ai besoin d'idées sur la façon de déplacer un objet (un cercle qui représente un robot dans mon application).Besoin d'aide pour déplacer un objet

La surface sur laquelle l'objet va se déplacer est constituée de tuiles de BufferedImage de 3 lignes et 3 colonnes (représentées dans les tableaux). Tous les carreaux sont de tailles égales (160 X 160). La 3ème rangée et la 3ème colonne sont les rails sur lesquels l'objet doit se déplacer. Cela signifie que l'objet (robot) peut se déplacer horizontalement (vers l'avant et vers l'arrière) et verticalement (vers le haut et vers le bas). Le carreau à la position [2] [2] (je compte à partir du haut pour que la rangée du haut soit 0 le suivant est 1 etc ..) est un croisement que le robot utilisera pour passer aux rails verticaux ou aux rails de rail horizontaux.

Mon problème maintenant est de savoir comment déplacer l'objet sur un carreau spécifique après que le croisement a tourné. Par exemple, le robot se trouvera dans le Carreau à la position [2] [1] et voudra se déplacer sur la tuile à la position [1] [2] après que le croisement aura été tourné, puis se déplacer vers le haut. Ou il peut être à [1] [2] et vouloir passer à [2] [1] après que le croisement est tourné, puis aller plus en arrière.

Comment puis-je déplacer le robot d'une mosaïque à une autre? De quelle façon puis-je me référer à un carreau spécifique dans le BufferedImage que je peux placer l'objet. Tout ce que je veux, c'est me donner des idées sur comment je peux le faire. S'il vous plaît, c'est la première fois que je fais un tel projet, pardonnez-moi si ma question est trop élémentaire. Avec votre explication et votre aide, j'en apprendrai plus.

Merci beaucoup.

+1

pourrait vous s'il vous plaît poster quelques bits pertinents de votre code. À l'heure actuelle, il sera très difficile de répondre à votre question. – jjnguy

+0

Ces exemples aident-ils du tout? Quelles bibliothèques essayez-vous d'utiliser? http://www.java2s.com/Code/Java/2D-Graphics-GUI/Programtodrawgrids.htm http://www.java2s.com/Code/Java/2D-Graphics-GUI/AntiAlias.htm –

+0

En ce moment Je n'ai fait que la Grille qui est une rangée de 3 et 3 colonnes de tuiles d'images tamponnées. Je n'ai aucun code concret à montrer. J'ai besoin d'un moyen de calculer comment déplacer l'objet dans la bonne cellule. J'espère que je suis clair ici. – kap

Répondre

0

Pour afficher votre image, vous devez déterminer les limites de la grille dans laquelle vous voulez placer votre image. Je crée habituellement deux méthodes auxiliaires, l'une pour traduire les coordonnées de la grille en coordonnées d'affichage et l'autre pour aller dans l'autre sens.

private Point convertGridToDisplay(int x, int y) { 
    return new Point(x * 160, y * 160); 
} 

private Point convertDisplayToGrid(int x, int y) { 
    return new Point(x/160, y/160); 
} 

convertGridToDisplay() vous donnera la haute main gauche coordonnées où vous devez dessiner votre image.

Par exemple:

Point point = convertGridToDisplay(2, 1); 
graphics.drawImage(img, null, point.x, point.y) 

attireront votre image au réseau (2, 1).

convertDisplayToGrid() sera utile lorsque vous voulez savoir quelle grille un clic de souris a été faite.