0
当我在位置拍摄时,角色从子弹开始朝向正确的方向。但是如果我移动到不同的位置,子弹不会朝正确的方向行进。 澄清事情mx是鼠标x位置,我是鼠标y位置,px是玩家x位置,py是玩家y位置。lwjgl/java移动时在鼠标方向拍摄
package Player;
import java.io.IOException;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import org.newdawn.slick.Color;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;
import Game.Main;
public class Bullet {
public double x = 0, y = 0;
public double sx, sy;
public Texture texture;
public Bullet(double mx, double my, double px, double py){
sx = mx-px;
sy = py-my;
x = px;
y = py;
sx = sx/Math.sqrt((mx-x)*(mx-x) + (my-y)*(my-y));
sy = sy/Math.sqrt((mx-x)*(mx-x) + (my-y)*(my-y));
}
public void logic(){
renderBullet();
x+=sx * 8;
y+=sy * 8;
}
public void renderBullet(){
try {
texture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("res/image.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Color.white.bind();
texture.bind(); // or GL11.glBind(texture.getTextureID());
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0,0);
GL11.glVertex2d(x,y);
GL11.glTexCoord2f(1,0);
GL11.glVertex2d(10+x,y);
GL11.glTexCoord2f(1,1);
GL11.glVertex2d(10+x,10+y);
GL11.glTexCoord2f(0,1);
GL11.glVertex2d(x,10+y);
GL11.glEnd();
}
}
这是什么类型的游戏? 2D从上面看?玩家是否总是在屏幕上居中? mx,my,px,py是否在屏幕上显示所有像素坐标?随着你提供的小信息,没有人可以回答这个问题... – BDL
这是从上面的游戏的2D视图。角色并不总是居中在屏幕上。 Mx,my,px,py都是游戏中的职位。 – Max
@BDL我忘了太@ @ thingy。 – Max