프로그래밍/API 프로그래밍
-
파랜드 택틱스 리소스 추출프로그래밍/API 프로그래밍 2014. 7. 28. 01:03
파랜드 택틱스 1,2 설치하면 다음과 같은 폴더들이 보입니다. (본 화면은 어디서 압축된 거 받아서 한거라 다를수도 있습니다.) [그림 1] 설치(?)된 파랜드택틱스2 폴더 현황 여기 폴더 안에 보면 bmp가 보이는데 (여기서는 bmp 폴더를 가지고 테스트 하겠습니다.) 빨간 박스처럼 미리보기가 제대로 되는 경우가 있으며, 파란 박스처럼 미리보기가 안되는 경우가 있습니다. [그림 2] 제대로 보이는 enk.bmp 파일과 보이지 않는 나머지 bmp 파일들... 파란 박스를 실행하면 다음과 같이 손상되었다면서 보여주지도 않습니다. [그림 3] face01a.bmp를 실행시 나오는 에러 화면 정말로 손상된 이미지라면 게임화면이 어딘가 깨질텐데 그게 아닌거라면 정상적인 파일일껍니다. 파일을 분석해봅시다. 일단 ..
-
회전 반경이 변화하는 회전탄의 이동프로그래밍/API 프로그래밍 2014. 5. 10. 18:17
#include void MoveLoopingBullet2 ( float& x, float& y, //탄환의 좌표 float& vx,float& vy, //탄환의 속도 float cx, float cy, // 회전 중심의 좌표 float& r, // 반경 float vr, // 반경의 변화 float theta, // 각도(라디안) float omega // 한 번 이동할 때 변화하는 각도(라디안) ) { // 각도를 변화시키기 theta += omega; // 반경을 변화시키기 r+= vr; // 위치를 계산하기 x = cx + r*cos(theta); y = cy + r*sin(theta); // 탄환의 속도(필요할 때만) vx = -r * omega*sin(theta); vy = r * omega*..
-
회전탄의 이동프로그래밍/API 프로그래밍 2014. 5. 10. 16:38
#include void MoveLoopingBullet ( float& x, float& y,// 탄환의 좌표 float& vx, float& vy,// 탄환의 속도 벡터 float cx, float cy,// 회전 중심의 좌표 float r,//반경 float theta,//각도(라디안) float omega// 한 번 이동할 때 변화하는 각도(라디안) ) { // 각도를 변화시키기 theta += omega; // 위치를 계산하기 x = cx + r*cos(theta); y = cy + r*sin(theta); // 탄환의 속도(필요할 때만) vx = -r*omega*sin(theta); vy = r*omega*cos(theta); }
-
가속도탄프로그래밍/API 프로그래밍 2014. 5. 10. 16:17
void MoveAccelerateBullet(float speed,float accel, float& vx, float& vy ) //탄환의 속도 , 가속도, 속도 벡터의 X성분과 Y성분 { // 속도 벡터의 X, Y성분을 이전 속도로 나누기 if(speed!=0) { vx /= speed; vy /= speed; } //속도를 갱신하기 speed += accel; // 속도 벡터의 X, Y 성분에 새로운 속도를 곱하기 vx *= speed; vy*= speed; };
-
미사일 발사프로그래밍/API 프로그래밍 2014. 5. 10. 15:47
//미사일 #include // 미사일의 각 부분을 나타내는 구조체 typedef struct MISSILE_STRUCT { float X,Y;//좌표 float VX,VY;//속도 float OldX,OldY;//이전 좌표 float Angle;// 회전각도 float OldAngle;// 이전 회전각도 struct MISSILE_STRUCT* Prec; //바로 앞부분을 가리키는 포인터 bool IsMissile;//미사일인지 아닌지 // (true라면 미사일, // false라면 연기) }MISSILE_TYPE; MISSILE_TYPE*NewMissileType(); //미사일의 발사 void ShootMissile(float x, float y, int length) { MISSILE_TYPE* ..
-
6.유도탄 2프로그래밍/API 프로그래밍 2014. 4. 20. 14:37
이전 유도탄의 문제는 무조껀 쫒아오게되어서 캐릭터가 아무리 피하더라도 결국에는 유도탄에 맞는다. 이래서는 탄환을 피할 수가 없으므로 아무도 이런 슈팅 게임을 하려고 하지 않을 것입니다. 유도탄의 성능을 조금 나쁘게 해 주는 것이 오히려 게임을 더욱 재미있게 해줍니다. 그래서 탄환의 선회 각도에 제한을 걸어 줍니다. 탄환은 메인 캐릭터를 향해 선회하지만 한 번 선회할 때 제한된 각도를 넘어서 선회하지 못하게 합니다. 이렇게 해 주면메인 캐릭터가 충분히 탄환을 피할 수 있기 때문에 적절한 게임성을 지니게 됩니다. #include void MoveHomingBullet( float& x, float& y, // 탄의 좌표 float& vx, float& vy, // 탄의 속도벡터 float mx, float ..
-
5.유도탄프로그래밍/API 프로그래밍 2014. 4. 19. 21:27
아겁나 귀찮 ㅋㅋ 메인 캐릭터를 추격하는 탄환입니다. 메인 캐릭터를 향해 직진하는 탄환과는 달리 유도탄은 발사된 후에도 방향을 바꿔가며 메인 캐릭터를 쫒아옵니다. 메인 캐릭터가 달아난 후에도 쫒아오기 때문에 단순히 직진만 하는 탄환보다 피하기가 어려워집니다. int mx = CPlayer::GetPlayer().iX; int my = CPlayer::GetPlayer().iY; int x = m_tInfo.iX; int y = m_tInfo.iY; float d = sqrt(float(mx-x)*float(mx-x)+float(my-y)*float(my-y)); if(d) { vx = (mx-x)/d*m_iSpeed; vy = (my-y)/d*m_iSpeed; } else { vx = 0; vy = m_..