<div>안녕하세요 포트리스같은거 대충 만들려고 하는데.</div> <div>이거 총알 쏘면 포신에 총알에 한개 박히고.</div> <div>총쏘면 땅이 사라지는데</div> <div>버그인가요? 아니면 제가 엄청난 잘못을 저지르고 있는건가요 ㅠㅠ</div> <div>정말 제발 알려주세요 ㅠㅠ 답답합니다 구조상 문제가 있을까요..</div> <div> </div> <div> </div> <div>#include "stdafx.h"<br>#include "gameStudy.h"</div> <div> </div> <div><br>gameStudy::gameStudy()<br>{<br>}</div> <div><br>gameStudy::~gameStudy()<br>{<br>}</div> <div><br>void gameStudy::render(HDC hdc)<br>{<br> //탱크 땅<br> Rectangle(hdc, _Land[1].LandRect.left, _Land[1].LandRect.top, _Land[1].LandRect.right, _Land[1].LandRect.bottom);<br> Rectangle(hdc, _Tank[1].TankRect.left, _Tank[1].TankRect.top, _Tank[1].TankRect.right, _Tank[1].TankRect.bottom);</div> <div> //포신<br> MoveToEx(hdc, _Tank[1].TankRect.left, _Tank[1].TankRect.top, NULL);<br> LineTo(hdc, _Tank[1].BarrelPosit.x, _Tank[1].BarrelPosit.y);<br> //총알<br> for (int i = 0;i < BULLETMAX;i++)<br> {</div> <div> if (!_Bullet[i].IsShot) continue;<br> Rectangle(hdc, _Bullet[i].BulletRect.left, _Bullet[i].BulletRect.top, _Bullet[i].BulletRect.right, _Bullet[i].BulletRect.bottom);</div> <div><br> }</div> <div> </div> <div><br>}</div> <div><br>HRESULT gameStudy::init()<br>{</div> <div> //타이머세팅<br> SetTimer(_hWnd, 0, 5, NULL);</div> <div> //초기화<br> <br> ZeroMemory(_Tank,sizeof(Tank)); <br> ZeroMemory(_Land,sizeof(Land));<br> <br> //총알초기화<br> <br> ZeroMemory(_Bullet, sizeof(Bullet));<br> </div> <div> //탱크,지형지물 초기세팅<br> _Land[1].LandPosit.x = WINSIZEX / 2;<br> _Land[1].LandPosit.y = WINSIZEY;</div> <div> _Tank[1].TankPosit.x = 200;<br> _Tank[1].TankPosit.y = 300;</div> <div> _Land[1].LandRect = RectMakeCenter(_Land[1].LandPosit.x, _Land[1].LandPosit.y, WINSIZEX - 100, 150);<br> _Tank[1].TankRect = RectMakeCenter(_Tank[1].TankPosit.x, _Tank[1].TankPosit.y, 80, 50);</div> <div><br> //_Tank[1].BarrelPosit.x =_Tank[1].TankRect.right;<br> //_Tank[1].BarrelPosit.y =_Tank[1].TankRect.top;<br> //<br> <br> return S_OK;<br>}</div> <div><br>void gameStudy::KeySetting()<br>{<br> if (KEYMANAGER->isStayKeyDown(VK_RIGHT))<br> {<br> _Tank[1].TankPosit.x += 3;</div> <div> }</div> <div> if (KEYMANAGER->isStayKeyDown(VK_LEFT))<br> {<br> _Tank[1].TankPosit.x -= 3;<br> }</div> <div> if (KEYMANAGER->isStayKeyDown(VK_UP))<br> {<br> _Tank[1].BarrelAngle += 1;<br> }</div> <div> if (KEYMANAGER->isStayKeyDown(VK_DOWN))<br> {<br> _Tank[1].BarrelAngle -= 1;<br> }</div> <div> if (KEYMANAGER->isOnceKeyDown(VK_SPACE))<br> {<br> <br> for (int i = 0;i < BULLETMAX;i++)<br> {<br> if (_Bullet[i].IsShot) { continue; }</div> <div> _Bullet[i].IsShot = true;<br> //포신 끝좌표값을 총알 시작좌표로.<br> _Bullet[i].BulletPosit.x = _Tank[1].BarrelPosit.x;<br> _Bullet[i].BulletPosit.y = _Tank[1].BarrelPosit.y;<br> //해당 좌표에 총알 렉트 생성<br> <br> break;<br> }<br> }<br> <br> Move();<br>}</div> <div>void gameStudy::Move()<br>{<br> //if (!IntersectRect(&RectMake(0, 0, 0, 0), &_Land[1].LandRect, &_Tank[1].TankRect)) //탱크 추락<br> //{<br> // _Tank[1].TankPosit.y += 3;<br> //<br> //}</div> <div> //if (_Tank[1].TankRect.bottom>_Land[1].LandRect.top) //탱크 추락<br> //{<br> // _Tank[1].TankPosit.y += 3;<br> //<br> //}<br> //탱크 이동<br> _Tank[1].TankRect = RectMakeCenter(_Tank[1].TankPosit.x, _Tank[1].TankPosit.y, 80, 50);<br> //포신 이동<br> _Tank[1].BarrelPosit.x = cosf(_Tank[1].BarrelAngle*rad)*Barrellength + _Tank[1].TankRect.left;<br> _Tank[1].BarrelPosit.y = -sinf(_Tank[1].BarrelAngle*rad)*Barrellength + _Tank[1].TankRect.top;<br> <br> //총알 이동</div> <div> for (int i = 0;i < BULLETMAX;i++)<br> {<br> if (!_Bullet[i].IsShot) { continue; }<br> <br> _Bullet[i].BulletRect = RectMakeCenter(_Bullet[i].BulletPosit.x, _Bullet[i].BulletPosit.y, 10, 10);<br> <br> //_Bullet[i].BulletRect.left += BULLETSPEED;<br> //_Bullet[i].BulletRect.right+=BULLETSPEED;<br> _Bullet[i].BulletPosit.x += BULLETSPEED;</div> <div> <br> }</div> <div> </div> <div>}</div> <div>void gameStudy::MakeObject()<br>{</div> <div> //이건위에꺼랑 거의차의없는데 왜안됨?<br> /*_Tank[1].BarrelPosit.x = cosf(_Tank[1].BarrelAngle*rad)*Barrellength + _Tank[1].TankPosit.x;<br> _Tank[1].BarrelPosit.y = -sinf(_Tank[1].BarrelAngle*rad)*Barrellength + _Tank[1].TankRect.y;*/</div> <div><br>}</div> <div><br>void gameStudy::update()<br>{<br> <br> <br> ////계속그려주기<br> //MakeObject();<br> //키처리<br> KeySetting();</div> <div><br> //이동처리</div> <div> </div> <div> </div> <div><br> gameNode::update();</div> <div>}</div> <div><br>void gameStudy::release()<br>{</div> <div> gameNode::release();<br>}<br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.