2012-10-07 6 views
0

J'essaie de faire un jeu de sable java et je ne peux pas dépasser un peu. J'ai fait ma méthode qui dessine un rectangle à mouseX et mouseY, et je l'ai mis en place afin qu'il mette à jour chaque image de sorte qu'il suit constamment la souris. Ce que je suppose est que je voudrais utiliser un tableau pour créer chaque rectangle, et à partir de là utiliserait un algorithme prédéfini pour flotter au sol, je suis tout bon avec ça, je ne comprends pas comment pour «accrocher ma méthode» jusqu'à un tableau.Dessiner plusieurs pixels/rectangles

Ceci est la méthode que je utilise pour dessiner le rectangle (dans son propre classe appelée Méthodes)

import org.newdawn.slick.Graphics; 

public class Methods { 

public Graphics g = new Graphics(); 

public int sizeX = 4; 
public int sizeY = 4; 

public void drawParticle(float x, float y){ 
    g.drawRect(x, y, sizeX, sizeY); 
} 
} 

Et voici ma classe principale

import org.newdawn.slick.GameContainer; 
import org.newdawn.slick.Graphics; 
import org.newdawn.slick.SlickException; 
import org.newdawn.slick.state.BasicGameState; 
import org.newdawn.slick.state.StateBasedGame; 

public class Control extends BasicGameState { 
public static final int ID = 1; 

public Methods m = new Methods(); 

int mouseX; 
int mouseY; 

public void init(GameContainer container, StateBasedGame game) throws SlickException{ 
} 

public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException { 
    m.drawParticle(mouseX, mouseY); 
} 

public void update(GameContainer container, StateBasedGame game, int delta) { 
} 

public void mouseReleased(int button, int x, int y){ 
    mouseX = 0; 
    mouseY = 0; 
} 

public void mouseDragged(int oldx, int oldy, int newx, int newy) { 
    mouseX = newx; 
    mouseY = newy; 
} 

public int getID() { 
    return ID; 
} 

} 

mais quand je clique, un seul rectangle suit la souris, au lieu que beaucoup soient créés à la souris: L

+0

Quelle est votre question? –

+0

Comment puis-je créer plusieurs rectangles lorsque je clique? – user1610541

+0

Faites de même que vous le feriez pour créer un rectangle, mais en boucle. Pour une meilleure assistance plus tôt, publiez un [SSCCE] (http://sscce.org/) de votre code actuel, et votre meilleure tentative pour implémenter le comportement souhaité. –

Répondre

0

Variables publiques:

Rectangle boxes[] = new Rectangle[maxnum]; 
int boxnum = 0; 

Le déplacement de la souris:

boxes[boxnum] = new Rectangle[e.getX(), e.getY(), sizeX, sizeY); 
boxnum = boxnum + 1; 

Lors de l'élaboration de vos particules:

counter = 0; 
do 
{ 
    g.drawRect(boxes[counter].x, boxes[counter].y, sizeX, sizeY); 
    counter = counter + 1; 
} while (counter < maxnum); 

Où maxnum est le nombre maximum de boîtes que vous aurez. De cette façon, vous pouvez stocker plusieurs rectangles dans votre tableau et parcourir le tableau et les dessiner lorsque vous mettez à jour l'écran. J'espère que cela t'aides.

Questions connexes