안녕하세요 <div><br /></div> <div>HTML5/javascript 를 공부하고 있는 학생입니다.</div> <div><br /></div> <div><br /></div> <div><div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201405/1401288465jnc9qpW7FHlVvEnigZh9AUeK4if1eZ.png" width="461" height="372" alt="장면.png" style="border:none;" /></div></div> <div><div style="text-align:left;"><br /></div> <div style="text-align:left;">이런식으로 아이언맨이 사방팔방 돌아다니면서,</div> <div style="text-align:left;"><span style="font-size:9pt;line-height:1.5;">오른쪽 끝에서 랜덤하게 나타나는 탱크를 쏘아 잡는 애니메이션을 만들고 있는데요.</span></div> <div style="text-align:left;"><br /></div> <div style="text-align:left;">문제는 저 포탄이 적을 맞추는 로직이, 잘못 되었는지, 적의 왼쪽 상단만 맞아야 적이 죽더라구요;</div> <div style="text-align:left;"><br /></div> <div style="text-align:left;"> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201405/1401288571VL1EtV8CCzZqepKZHLgOaQ8U.png" width="149" height="156" alt="판정 부위.png" style="border:none;" /></div> <div style="text-align:left;"><br /></div> <div style="text-align:left;">이렇게 적의 왼쪽 끝 모서리를 포탄이 지나가야 격추된 것으로 처리가 되더라구요..</div> <div style="text-align:left;"><br /></div> <div style="text-align:left;">제가 원하는 판정은 적 오브젝트(저 네모 부분)를 맞추는 걸 원하는건데..</div> <div style="text-align:left;">그래서 제가 생각한 판정은</div> <div style="text-align:left;"><br /></div> <div style="text-align:left;"><br /></div> <div style="text-align:left;"><br /></div> <div style="text-align:left;"> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201405/1401289195JZ76iHuqHqSHbutE6jwyLdjv.png" width="368" height="267" alt="적.png" style="border:none;" /></div><br /></div> <div style="text-align:left;"><span style="font-size:9pt;line-height:1.5;">적과 포탄의 거리가 일정 거리가 되면, 맞은걸로 치는 겁니다.</span></div> <div style="text-align:left;"><br /></div> <div style="text-align:left;">적의 크기는 50, 50 이므로, <span style="font-size:9pt;line-height:1.5;">적의 x 좌표, y 좌표(왼쪽 상단 기준)으로부터,</span></div> <div style="text-align:left;">25, 25 만큼 증가시킨 위치가, 바로 적의 중심 부분이 되겠지요.</div> <div style="text-align:left;"><br /></div> <div style="text-align:left;">이렇게 실시간으로 이동하는 적의 x+25, y+25 좌표를 얻어 내어,<br /></div> <div style="text-align:left;">적과 포탄이 25만큼 가까워지면, 적이 격추 된것으로 처리 한다는 것이 제 생각입니다..</div> <div style="text-align:left;"><br /></div> <div style="text-align:left;">현재 제가 쓰고 있는 격추 로직인데, 어떻게 고쳐야 할까요...</div></div></div> <div><br /></div> <div><br /></div> <div>포탄 클래스에서 돌아가는 격추 로직..</div> <div><div>if(enemy.dist(this.x,this.y) < this.width)<span style="white-space:pre;"> </span>// 적 격추</div> <div><span style="white-space:pre;"> </span>{</div> <div><span style="white-space:pre;"> </span>this.remove = true;<span style="white-space:pre;"> </span>// </div> <div><span style="white-space:pre;"> </span>cannon.cnt++;<span style="white-space:pre;"> </span>// 플레이어 점수 상승</div> <div><span style="white-space:pre;"> </span>enemy.refresh();<span style="white-space:pre;"> </span>// </div> <div><span style="white-space:pre;"> </span>}</div></div> <div><br /></div> <div>적 클래스에서 갖고 있는, dist 함수 원형</div> <div><div>this.dist = function(x,y)</div> <div><span style="white-space:pre;"> </span>{</div> <div><span style="white-space:pre;"> </span>var a = Math.abs( x - this.x);<span style="white-space:pre;"> </span>// 절대값(포탄의 x 좌표 - 적의 x 좌표)<span style="white-space:pre;"> </span>= 포탄과 적의 x좌표 거리</div> <div><span style="white-space:pre;"> </span>var b = Math.abs( y - this.y);<span style="white-space:pre;"> </span>// 절대값(포탄의 x 좌표 - 적의 y 좌표)<span style="white-space:pre;"> </span>= 포탄과 적의 y 좌표 거리</div> <div><br /></div> <div><span style="white-space:pre;"> </span>return Math.sqrt(a*a + b*b);<span style="white-space:pre;"> </span>// </div> <div><span style="white-space:pre;"> </span>};</div></div> <div><br /></div> <div>원래는 해당 오브젝트의 좌표4개로 부터 생성되는 면과 겹치면 피격으로 했었는데,</div> <div>그거보단 저렇게 해보고 싶어서...</div> <div><br /></div> <div>많은 조언 부탁드립니다 ㅠㅠ</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.