J'essaie de créer un jeu de type balle balle similaire à Touhou en Java.2d Bullet jeu en Java
J'ai besoin d'aide pour commencer, comme un exemple à suivre. J'ai essayé de le faire à partir de zéro en utilisant JFrame, mais mon principal problème est le décalage lors de la création de balles.
J'ai une classe bullet, avec des paramètres pour la faire passer de A à B. Mais chaque fois que le programme crée ou supprime des objets bullet (qui sont stockés dans une ArrayList), il se fige pendant une fraction de seconde, mais devient très prononcé quand il y a beaucoup de balles. Est-ce que je me trompe pour utiliser un ArrayList ici? Quels guides sont recommandés pour apprendre à le faire correctement?
Voici ma classe Bullet:
import java.awt.Graphics;
public class Bullet
{
double x,y, xend, yend;
int width, height;
int life = 200;
private static final double speed = 8;
double dirX, dirY;
public Bullet(double x, double y, double xend, double yend, int width, int height)
{
this.x=x;
this.y=y;
this.xend = xend;
this.yend = yend;
this.width = width;
this.height = height;
dirX = speed*Math.cos(getAngle());
dirY = speed*Math.sin(getAngle());
}
public double getAngle()
{
double angle = (double) Math.toDegrees(Math.atan2(yend-y, xend - x));
if(angle < 0){
angle += 360;
}
System.out.println(angle);
return Math.toRadians(angle);
}
public void tick()
{
life--;
x+=dirX;
y+=dirY;
}
public void draw (Graphics g)
{
g.fillRect((int) Math.round(this.x),(int) Math.round(this.y),this.width,this.height);
}
}
Et ceci est le code qui est exécuté lorsque l'utilisateur crée une balle. Il utilise mouseListener pour les coordonnées xend yend - trouver la destination de la balle. J'utilise une minuterie pour actualiser le jeu, mais il n'est toujours pas à une vitesse constante à cause des gels.
Veuillez fournir un [mcve]. – Berger
Vous devrez peut-être afficher du code. Utilisez-vous JBullet ou la bibliothèque Bullet? – matt
J'ai ajouté du code. – SceyF