Also, für eine Codierung Zuordnung müssen wir ein Panzerspiel machen. Ich habe diese eine Kugel-Klasse:Machen Sie eine Kugel gegen die gegenüberliegenden Seiten des Bildschirms
package com.MyName.battletanks;
import com.badlogic.gdx.graphics.g2d.Sprite;
public class Bullet {
public Sprite b;
public float vx = 0;
public float vy = 0;
public Bullet(Sprite temp) { b = temp;}
public void move() { b.translate(vx*3,vy*3);}
}
Meine Variablen sind wie folgt:
Sprite Player1;
Sprite Player2;
ArrayList<Bullet> bullets;
Auf Platz Ein Klick darauf schafft die Kugel mit dieser:
if (Gdx.input.isKeyPressed(Input.Keys.SPACE)) {
Bullet bullet = new Bullet(new Sprite(new Texture("Bullet1.png")));
bullet.b.setPosition(Player1.getX() + Player1.getWidth()/2, Player1.getY() + Player1.getHeight()/2);
float rotation = (float) Math.toRadians(Player1.getRotation());
bullet.vx = (float) Math.cos(rotation);
bullet.vy = (float) Math.sin(rotation);
bullets.add(bullet);
}
Nun, hier ist mein Code, um meine Tanks durch eine Seite des Bildschirms zu einem anderen zu gelangen:
if (Player1.getX() > Gdx.graphics.getWidth()){
Player1.setX(-64f);
} else if(Player1.getX()<-64f){
Player1.setX(Gdx.graphics.getWidth());
}
if (Player1.getY() > Gdx.graphics.getHeight()){
Player1.setY(-64);
} else if(Player1.getY() < -64f){
Player1.setY(Gdx.graphics.getHeight());
}
Jetzt ist Player 1 ein Sprite, aber die Kugeln werden mithilfe einer Arraylist und einer selbst erstellten Bullet-Klasse erstellt. Daher kann ich den Code für Player1, den ich für das Aufzählungszeichen erstellt habe, nicht verwenden. Meine Frage ist also, wie kann ich meine Kugel auf die andere Seite des Bildschirms bringen?
Das x in bullet.x erscheint als rot, egal wo ich es hinstelle, und es gibt mir einen Fehler. Ich bin mir nicht sicher, was ich dagegen tun soll. Der Vektor2 funktionierte jedoch einwandfrei. –
@LucasZ Das liegt daran, dass Sie die Variablen x und y nicht in Ihrer Bullet-Klasse geschrieben haben! Deine Positionen sind in Sprite. Also sollten Sie folgendes tun: bullet.b.setPosition (bullet.b.getX()% Gdx.graphics.getWidth(), bullet.b.getY()% Gdx.graphics.getHeight()); ' – Fish
Wenn das funktioniert Könntest du es als Antwort akzeptieren? :) – Zac