J'essaie de faire le jeu tron en java, mais la piste légère derrière le vélo ne se met pas à jour après l'emplacement initial du vélo


Donc, comme le titre l'indique, j'essaie de faire du jeu tron un projet final de programmation. Tout fonctionne à l'exception d'une partie cruciale, Le sentier lumineux. J'ai une classe pour la piste de lumière qui prend les emplacements x et y du joueur d'une classe différente et dessine un carré bleu dans la position des joueurs. Lorsque j'exécute et compile le programme, un carré est dessiné dans la position de départ des joueurs une fois que le joueur est déplacé. Cependant, le carré ne dessine plus après les joueurs premier coup.

Voici ma classe de trail

import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class pTrail {

    player p;
    int x;
    int y;
    int c;
    Rectangle pT;

    public pTrail() {
        p = new player();
        x = p.getX();
        y = p.getY();
        pT = new Rectangle (x,y);
    }

    public Rectangle getRect() {
        return pT;
    }

    public void draw(Graphics2D g, Graphics2D g2) {
        g2.setColor(Color.blue);
        g2.fillRect(x,y,10,10);
    }
}

int c est conçu pour être plus tard une variable pour modifier la couleur de la piste. Si vous avez besoin de plus de code, veuillez commenter ce que vous devez voir, pilote, lecteur, etc.

Author: Caleb Limb, 2015-06-01

2 answers

Vous devez prendre player comme paramètre dans pTrail(). En ce moment, vous créez un nouveau joueur à l'intérieur de pTrail() mais il doit être comme ceci pTrail(player p). La raison pour laquelle vos rectangles ne suivent pas votre lecteur est qu'ils sont toujours créés à l'emplacement par défaut pour player. Si vous passez plutôt le joueur comme paramètre, la piste aura en fait la position du joueur.

 1
Author: Caleb Limb, 2015-06-01 15:05:57

Il manque du code, mais peut-être que cela aidera: Parce que vous dites que tout fonctionne, je crois que lorsque votre joueur se déplace, vous mettez à jour x ou\et y (sinon, faites-le). Maintenant, vous devez exécuter à nouveau la méthode draw avec les bonnes valeurs x et y (et ainsi de suite dans n'importe quel mouvement du joueur).

 0
Author: yitzchak, 2015-06-01 14:58:16