2012-12-28 3 views
-1

이 코드는 충돌로 양쪽 적을 때리거나 (총알로) (두 번째로 적을 때 (즉 첫 번째 적과 두 번째로 뛰거나 두 가지를 모두 죽이는 경우에만 작동합니다. 총알)하지만, 내가 첫 번째 적을 (총알로) 죽인 다음 2 차에 충돌하면 충돌이 일어날 것입니다. 모든 팁 ?? 내 원수의이 알고리즘을 수정하는 방법

if (d.intersects(r1)) 
    { 
      en.isAlive = false; 
      hitfirst = true; 


} 
if (d.intersects(r2)) 
{ 
     en2.isAlive = false; 


} 
if (d.intersects(r2) && hitfirst == false) 
     hitmang(hit); 
p.hitting = true; 

if (d.intersects(r1) && en.visible == true && en.isAlive == false && !p.hitting) 
{ 


    hitmang(hit); 
    p.hitting = true; 
} 



if (d.intersects(r2) && en.visible == true && en.isAlive == false && !p.hitting) 
{ 

     hitmang(hit); 
     p.hitting = true; 
} 

if (!d.intersects(r1) && d.intersects(r2) && en2.visible == true && !p.hitting) { 
hitmang(hit); 
p.hitting = true; 
     } 
    if (!d.intersects(r1) && !d.intersects(r2)){ 
     p.hitting = false; 

    } 

경계

public Rectangle getBounds() // ghost is 114 x 134 
    { 
     return new Rectangle(x, y, 114, 134); 
    } 

en = new Enemy(700, 150); 
en2 = new Enemy (980, 150); 

Hitmangs

private void hitmang(int x) // x=25 
{ 
    p.user_hp = p.user_hp - x; 
} 
+1

'이 코드는 내가 충돌로 두 적을 모두 맞았을 때만 작동합니다. 또는 내가 양쪽을 죽이는 경우에만 작동합니다. '- 당신의 적이 누구이며, 왜 그들을 죽이고 싶습니까? 더 많은 정보를 입력하십시오. 질문이 불완전합니다. –

+0

더 많은 정보를 추가했습니다. + 목표를 달성 할 수 있기를 바랍니다. (도와 주려하고 도와 주셔서 감사합니다.) – user29698

답변

1

user29698

,691 @

이전 게시물에 ArrayLists 사용법이 게시되었습니다 ... 여러 적을 다룰 때이 방법을 사용하는 것이 좋습니다.

How would I put enemies into an ArrayList

후 여기에 hitmang 방법

...

당신은에서 System.out.println ("어쩌구 저쩌구")를 사용하여 시작해야합니다; 디버깅을 돕기 위해!

괄호 사이에 줄을 넣으십시오.

콘솔로 출력하는 경우 제대로 작동하지 않는 ".intersects"방법이 아닙니다. 그것은 당신의 적중 방법 일 것입니다 ...

+0

그것을 추가하고 아픈, 다른 대답을 주셔서 감사합니다 : D 조 편집 : 아이디어를 시도하고 그것은 알고리즘이 문제라고 가정하고 그래서 인쇄되지 않습니다. – user29698

+0

인쇄가 안되면 당신이 맞을 거라 생각합니다 :) 문제가 무엇인지 또는 무엇인지 테스트하려면 지금 불량배를 확인하십시오. – Savlon

관련 문제