Пятница, 22 Ноября 2024, 20:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
LWJGL вращение игрока за курсором
SunMilleДата: Понедельник, 13 Мая 2013, 15:38 | Сообщение # 1
был не раз
Сейчас нет на сайте
Доброго времени суток. Подскажите как сделать вращение игрока за курсором используя LWJGL и если можно его последующее перемещение по этой траектории.
Спасибо

Добавлено (13.05.2013, 15:38)
---------------------------------------------
Что никто не знает? sad Это как вращение игрока в тдс


@sunmille
goldsphereДата: Понедельник, 13 Мая 2013, 16:21 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
player.angle = atan2(player.x-mouse.x, player.y-mouse.y)

FinderX - Android Аркада

Сообщение отредактировал goldsphere - Понедельник, 13 Мая 2013, 16:21
SunMilleДата: Понедельник, 13 Мая 2013, 16:35 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата (goldsphere)
player.angle = atan2(player.x-mouse.x, player.y-mouse.y)

я так уже пробовал. идет вращение по кругу при нажатии, а мне надо именно чтобы спрайт следил за курсором
Код

    float angle = (float) Math.atan2(DonutDefender.player.position.x-getMouseX(), DonutDefender.player.position.y-getMouseY());
    GL11.glRotatef(angle, 0.0f, 0.0f, 1.0f);


Вот класс игрока
Код

public class Player {

  public Texture texture;
   
  public Vector3f position;
   
  public Player(){
   position = new Vector3f(100.0f, 100.0f, 0.0f);
  }
   
  public void LoadTexture(){
   try {
    texture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("res/graphics/player/spaceship.png"));
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
   
  public void Render(){
   this.texture.bind();
   GL11.glBegin(GL11.GL_QUADS);
    GL11.glTexCoord2f(0,0);
    GL11.glVertex2f(position.x, position.y);
    GL11.glTexCoord2f(1,0);
    GL11.glVertex2f(position.x+texture.getTextureWidth(), position.y);
    GL11.glTexCoord2f(1,1);
    GL11.glVertex2f(position.x+texture.getTextureWidth(), position.y+texture.getTextureHeight());
    GL11.glTexCoord2f(0,1);
    GL11.glVertex2f(position.x, position.y+texture.getTextureHeight());
   GL11.glEnd();
  }
   
   
}


@sunmille
MDKedДата: Среда, 26 Июня 2013, 14:44 | Сообщение # 4
частый гость
Сейчас нет на сайте
SunMille, ну а вы сделайте метод типа
void checkDir() {
float angle = (float) Math.atan2(DonutDefender.player.position.x-getMouseX(), DonutDefender.player.position.y-getMouseY());
GL11.glRotatef(angle, 0.0f, 0.0f, 1.0f);
}
И впилякайте его в render() и он сам будет его поворачивать во время отрисовки независимо щёлкнул чтонить или нет.


Стою на асфальте я в лыжи обутый.
То ли лыжи не едут, то ли я баганутый.
"O-Wars"
Yew_MentzakiДата: Пятница, 26 Июля 2013, 00:58 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата (SunMille)
если можно его последующее перемещение по этой траектории

Код

x += Math.cos(angle) * speed;
y += Math.sin(angle) * speed;
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг