저는 Java를 사용하는 초급 프로그래머입니다. 나는 처음으로 간단한 게임을 만들고있다.java에서 항목 (동전)을 삭제 (및 다시 생성)하는 방법. (컨트롤러 클래스를 사용하여 스폰)
Random randomGenerator = new Random();
for (int idx = 1; idx <= 1; ++idx){
int r1 = randomGenerator.nextInt(590);
this.r1=r1;
}
for (int idx = 1; idx <= 1; ++idx){
int r2 = randomGenerator.nextInt(380);
this.r2=r2;
: 나는 다른 자리 (I이 사용하고 그들이 포착되었고, 그들이 다시 양산 할 수있을 때 더 나은이 될 것이라고 후에 제거 할 (내 컨트롤러 클래스의 LinkedList의 항목) 동전 필요 내 "동전"에 임의의 x 및 y 변수를 설정). 나는 무작위로 그들을 산란 할 때 이미 모든 것을 다 했었고, Player 클래스 내에서 Collision() 메소드를 만들었습니다. 그것은 그 다음과 같습니다
private void Collision(){
for(int i = 0; i < c.size(); i++){
if(getBounds().intersects(c.get(i).getBounds())){
Game.points++;
}
}
}
포인트는 (가지) 잘 작동하지만 난 그냥 "포착"한 후 동전을 제거하기 위해 무엇을 알아낼 수 있습니다. addItem를 컨트롤러의 생성자에서 호출되어
public void removeItem(Coin coin){
c.remove(coin);
}
public void addItem(Coin coin){
c.add(coin);
}
... 나는 그것이 조금 오래 알고하지만 난 모든 것을 명확하게하고 싶었 : 물론 내 컨트롤러 클래스의 내부 추가 및 removeItem 방법이있다. 그 도움 없이는 무의미한 사람이기 때문에 누군가가 나를 도와 주면 정말 행복 할 것입니다. 나를 도와주는 사람 모두에게 감사 드리며 추가 정보가 필요하면 알려주세요.
편집
:private void Collision(){
int newCount = 0;
while(iter.hasNext()){
iter.next();
for(int i=0; i<cb.size(); i++){
if(getBounds().intersects(cb.get(i).getBounds())){
Game.points++;
newCount++;
iter.remove();
}
}
}
for(int i = 0; i < newCount; i++){
controller.addItem(new Coin());
newCount--;
}
}
내가 반복자는 컨트롤러에서 선언 한 :
static Iterator<Coin> iter = c.iterator();
그래서 난 내 플레이어 클래스에서 사용할 수있는 getter 함수 : 이 내 코드입니다
public static Iterator<Coin> getCoinIterator(){
return iter;
}
여기에서 컨트롤러에서 플레이어 클래스 인 이터레이터를 가져옵니다
private Iterator<Coin> iter = Controller.getCoinIterator();
컨트롤러에서 has() 및 hasNext() 메서드를 만들었지 만 여전히 오류가 많습니다.
에 편집을 입력 당신은 작성해야하는 루프, 충돌을 검사 플레이어에서 귀하의 경우 너무 –
확인하는 방법이다. 답장을 보내 주셔서 감사합니다. c는 플레이어 클래스의 연결된 목록에 대한 변수로 동전 경계를 얻습니다. 나는 아직 반복기 루프를 알지 못한다. 그러나 그것이 효과가 있다고 생각한다. 내 질문은 : if 문에 for 루프가 작동하도록 newCount에 1을 더하면 안 되는가? 3. 코인은 임의의 위치에 있지만 코인 생성자가 아닌 컨트롤러 생성자에서 가져옵니다. 나는 그것을 바꿔야 할까? 알려줘. 나는 아직도 많은 것을 이해하지 못한다 : D –
Ragnar
좋아, 나는 내 대답에서 몇 가지를 명확히하려고 노력할 것이다 –