[私の電話画面上のXYポイント]に触れるポイントで撮影するクラスを作成したいと思います。私はたくさんの検索をしましたが、読める良いリソースは見つかりませんでした。 私はX方向にのみ撃つことができるクラスを作成しました。私も画像をアップロードしました。 ご協力いただければ幸いです。XY方向での撮影
ありがとうございます。
public class Gun {
private float x, y;
private int speedX;
private boolean Visible;
private Rect rect;
public Gun (int startX, int startY)
{
x = startX;
y = startY;
speedX = 220;
Visible = true;
rect = new Rect();
}
public void update(float delta)
{
x += speedX*delta;
if (x > 800)
{
Visible = false;
}
updateRect();
}
private void updateRect()
{
rect.set((int) x, (int) y, (int) x + 20, (int) y + 10);
}
public void onCollideWith(Enemy e)
{
Visible = false;
}
これは私が更新した最近のコードですが、少し問題があります。
public class Gum {
private float x,y; // x & y position of the gun
private float bulletSpeed,speedX,speedY;
//speedX and speedY are define to update x & y position of bullets
private boolean Visible;
private Rect rect;
private float handlerX, handlerY; //to get the X and Y value of the touch
public Gum(int startX, int startY)
{
x = startX;
y = startY;
bulletSpeed = 220; //
Visible = true;
rect = new Rect();
}
public void update(float delta)
{
x+= speedX*delta;
y += speedY*delta;
if(x>800 || y >450)
{
Visible = false;
}
updateBullets();
updateRect();
}
private void updateBullets()
{
handlerX = InputHandler.scaledX ;
handlerY = InputHandler.scaledY ;
//location of the touch - location of the gun
float deltaX = handlerX - x;
/* THIS DEFINE IN ANOTHER CLASS (InputHandler)
* scaledX = (int) ((event.getX()/v.getWidth())* *GameMainActivity.GAME_WIDTH);
scaledY = (int) ((event.getY()/v.getHeight()) * GameMainActivity.GAME_HEIGHT);
*/
float deltaY = handlerY - y;
float length =(float) (Math.sqrt(Math.pow(deltaX, 2)) + Math.pow(deltaY, 2));
float normalDeltaX = deltaX/ length;
float normalDeltaY = deltaY/length;
speedX = (bulletSpeed * normalDeltaX);
speedY = bulletSpeed * normalDeltaY;
}
あなたがあなたのspeedX
変数に加えてspeedY
変数を宣言する必要が開始する前に**これは** https://youtu.be/C6AdnU_2Qz4
https://en.wikipedia.org/wiki/Basis_(linear_algebra)https://www.mathsisfun.com/algebra/vectors.html – Selvin
@selvinに感謝します。しかし、どうすればこのすべてをJavaコードに入れることができますか?説明してください。 – user5234003