Проблема заключается в следующем: У меня есть позиция, позволяющая сказать космический корабль, и положение должно быть определено посередине (например, из-за проблем с конфликтами и т. Д.). Если космический корабль не будет повернут, то изображение будет обращено так:Как нарисовать повернутое изображение из его центра в Slick2D?
spaceship.draw(xPos - width/2 , yPos - height/2);
Космический корабль теперь изображение в Slick2D, что имеет случайный угол (0 < = угол < 360), и до сих пор положение должно быть определено в его центре. Что пятно делает в розыгрыше() - методы заключается в следующем:
Он рисует овал вокруг изображения (я думаю, с наименьшей возможной площадью поверхности), а затем смотрит, где линия от центра при 135 ° выкл разрезает эллипс (красная точка) и устанавливает это как позицию.
Я все еще хочу сделать это в центре, что означает, что я должен subract значение в обоих измерениях (draw(xPos - xOff, yPos - yOff)
):
Но им unabled подсчитать, что! Может кто-то мне помочь, пожалуйста? Я потратил два дня, чтобы понять, в чем проблема ...
Спасибо много и Приветствую, г
Здесь код отрисовки:
> 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);
> }
Я не уверен, чтобы понять, что это ваша проблема. Вы хотите нарисовать изображение в определенном месте и хотите его повернуть? Если это так, я не понимаю, зачем вам такая передовая концепция. Пожалуйста, можете ли вы попытаться объяснить по-другому? – RPresle
Если вы просто хотите повернуть свое изображение, почему вращение не соответствует вашим потребностям? – RPresle
Извините за 6 дней, я был в отпуске, и это было здорово :-) Теперь к проблеме: я могу повернуть изображение, это просто. Но после его вращения я должен нарисовать его (повернутое изображение) в определенном положении (x, y). Итак, я говорю image.draw (x, y), но тогда x и y не находятся в центре изображения, а в левом верхнем углу центра. Конкретно: нарисованной красной точкой выше. Но я хочу определить центр повернутого изображения, и там он должен быть нарисован. Это яснее? В противном случае скажите, пожалуйста!Greets, r –