2012-10-07 3 views
0

나는 자바 모래 게임을 만들려고 노력 중이며 1 비트를 지나갈 수 없습니다. mouseX와 mouseY에서 사각형을 그립니다. 모든 프레임을 업데이트하여 마우스를 지속적으로 따라갈 수 있도록 설정했습니다.여러 픽셀/직사각형 그리기

각 사각형을 만들기 위해 배열을 사용하고 거기에 미리 정의 된 알고리즘을 사용하여 바닥에 떠오르면 모든 것이 좋을뿐입니다. 내 방법을 배열에 연결하는거야.

이 내가 (그것의 자신의 클래스라는 방법으로)

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); 
} 
} 

을 사각형을 그릴 사용하고있는 방법입니다 그리고 이것은 내 메인 클래스

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; 
} 

} 

하지만 내가 클릭 할 때, 마우스에 생성되는 사각형 대신에 하나의 직사각형이 마우스에 이어집니다. L

+0

무엇이 당신의 질문입니까? –

+0

클릭하면 여러 사각형을 어떻게 만듭니 까? – user1610541

+0

하나의 직사각형을 만들 때처럼 루프를 반복합니다. 더 나은 도움을 더 빨리 얻으려면 현재 코드의 [SSCCE] (http://sscce.org/)와 원하는 동작을 구현하기위한 최선의 시도를 게시하십시오. –

답변

0

공개 변수 :

마우스 이동에
Rectangle boxes[] = new Rectangle[maxnum]; 
int boxnum = 0; 

:

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

당신의 입자를 그리기 :

maxnum 당신이해야합니다 상자의 최대 수입니다
counter = 0; 
do 
{ 
    g.drawRect(boxes[counter].x, boxes[counter].y, sizeX, sizeY); 
    counter = counter + 1; 
} while (counter < maxnum); 

. 이 방법을 사용하면 배열에 여러 사각형을 저장하고 배열을 통과하여 화면을 업데이트 할 때 그릴 수 있습니다. 희망이 도움이됩니다.

관련 문제