Le problème est le suivant: J'ai une position de laisser dire un vaisseau spatial et la position doit être définie au milieu de celui-ci (par exemple en raison de problèmes de collision, etc.). Si le Spaceship ne serait pas mis en rotation, l'image serait tirée comme ceci:Comment dessiner une image pivotée depuis son centre dans Slick2D?
spaceship.draw(xPos - width/2 , yPos - height/2);
Le Spaceship est maintenant l'image dans Slick2D, qui a un angle aléatoire (0 < = angle < 360), et encore la la position doit être définie à son centre. Qu'est-ce que lisse fait au tirage au sort() - méthodes est la suivante:
Il dessine un ovale autour de l'image (je suppose que la plus petite surface possible) et regarde alors où la ligne du centre au large 135 ° coupe l'ellipse (point rouge) et définit cela comme position.
Je veux encore dessiner centrée, ce qui signifie, je dois subract une valeur dans les deux dimensions (draw(xPos - xOff, yPos - yOff)
):
Mais im pour calculer que désactivé! Quelqu'un peut-il m'aider s'il vous plaît? J'ai perdu deux jours pour comprendre ce que le problème est ...
Merci beaucoup et SALUE, r
Voici le code de rendu:
> public void render(GameContainer gc, StateBasedGame sbg, Graphics g)
> throws SlickException{
>
> // This sets all rotation to the middle of the graphics.
> // The method works RELATIVE TO THE TOP-LEFT-CORNER OF THE IMAGE.
> skin.setCenterOfRotation(skin.getWidth() * Revolve.getGS()/2 + Revolve.getXShift(),
> skin.getHeight() * Revolve.getGS()/2 + Revolve.getYShift());
>
> // This sets the Angle properly
> skin.setRotation(angle);
>
> // This draws the image: xPos and yPos define THE CENTER of the Image.
> skin.draw(
> (float) (Revolve.getXShift() + Revolve.getGS() * xPos),
> (float) (Revolve.getYShift() + Revolve.getGS() * yPos),
> Revolve.getGS()
> );
>
> // Draws the xPos and yPos of the Ship
> g.setColor(Color.white);
> g.drawOval(Revolve.getXShift() + Revolve.getGS() * xPos, Revolve.getYShift() + Revolve.getGS() * yPos, 2, 2);
> }
Je ne suis pas sûr de comprendre ce qui est votre problème. Vous voulez dessiner une image sur un emplacement spécifique et que vous voulez faire pivoter? Si oui, je ne comprends pas pourquoi vous avez besoin d'un tel concept avancé. S'il vous plaît pouvez-vous essayer d'expliquer différemment? – RPresle
Si vous voulez juste faire pivoter votre image, pourquoi la rotation ne correspond pas à vos besoins? – RPresle
Désolé pour les 6 jours de congé, j'étais en vacances, et c'était super :-) Maintenant, au problème: je peux faire pivoter l'image, c'est facile. Mais après la rotation, je dois le dessiner (l'image pivotée) à une position spécifique (x, y). Donc, je dis image.draw (x, y), mais alors x et y ne sont pas au centre de l'image, mais en haut à gauche du centre. Pour être précis: au point rouge dessiné ci-dessus. Mais je veux définir le centre de l'image pivotée, et là il doit être dessiné. Est-ce plus clair? Sinon, dites-moi s'il vous plaît!Salutations, r –