자유게시판

// 캐릭터의 스테이트를 정의 //
void Char_State(Base_Character &chara)
{
 if (!chara.isJumpEnd);
 else if (KEY_DOWN(VK_SPACE)) // 스페이스 키 : 점프
 { chara.state = JUMP;   
  if (KEY_DOWN(VK_RIGHT)) chara.state = JUMP_RIGHT;  // 동시에 눌린 경우 : 우방점프
  else if (KEY_DOWN(VK_LEFT)) chara.state = JUMP_LEFT; // 동시에 눌린 경우 : 좌방점프
  Last_Frame_Jump = Frame; chara.isJumpEnd = false;} //점프 시도한 프레임을 저장.(lastframejump)
 else if (KEY_DOWN(VK_RIGHT)) // 오른쪽 화살표 키
 { chara.state = MOVE_RIGHT; chara.Way_4 = MOVE_RIGHT;
  if (chara.isMoveRightEnd) { chara.isMoveRightEnd = false; if (!chara.isDash) chara.Last_Frame_Move_RIGHT = Frame; }
  if (KEY_DOWN(VK_SPACE))  chara.state = JUMP_RIGHT;}
 else if (KEY_DOWN(VK_LEFT) )  // 왼쪽 화살표 키
 { chara.state = MOVE_LEFT; chara.Way_4 = MOVE_LEFT;
  if (chara.isMoveLeftEnd) { chara.isMoveLeftEnd = false; if (!chara.isDash)  chara.Last_Frame_Move_LEFT = Frame; }
  if (KEY_DOWN(VK_SPACE))  chara.state = JUMP_LEFT; }
 else { chara.state = NONE; chara.isDashEnd = true; chara.isMoveRightEnd = true; chara.isMoveLeftEnd = true; }// chara.Speed = 3;
 
 // 대쉬시 스피드. 수정요망 //
 if (!chara.isDashEnd) chara.Speed = 5; else chara.Speed = 2;
 
 // 대쉬플래그 세우기 (우로) : 한번 우키 입력 / 끊김 / 20프레임내 다시 입력 //
 if (chara.Last_Frame_Move_RIGHT > 0) // 만약 라스트 프레임이 0보다 크다면!
 { if (Frame - chara.Last_Frame_Move_RIGHT >= 1 && Frame - chara.Last_Frame_Move_RIGHT <= 6) 
  if (!KEY_DOWN(VK_RIGHT)) //만약 프레임차이가 20보다 작을때 오른쪽 키가 안눌려졌다
  chara.isDash = true;  //그러면 대쉬 플래그가 선다 
  if (chara.isDash)   // 안눌려진 후 12프레임 안에 다시 눌렸을때 그리고 다시 안눌렸을때 플래그 조절
  { if (Frame - chara.Last_Frame_Move_RIGHT <=12) 
  { if (KEY_DOWN(VK_RIGHT)) { chara.isDashEnd = false; chara.isDash = false; chara.Last_Frame_Move_RIGHT = 0;} }
   else {chara.isDash = false; chara.isDashEnd = true; chara.Last_Frame_Move_RIGHT = 0;} }
 }

 // 대쉬플래그 세우기 (좌로) : 한번 좌키 입력 / 끊김 / 20프레임내 다시 입력 //
 if (chara.Last_Frame_Move_LEFT > 0) // 만약 라스트 프레임이 0보다 크다면!
 { if (Frame - chara.Last_Frame_Move_LEFT >= 1 && Frame - chara.Last_Frame_Move_LEFT <= 6) 
  if (!KEY_DOWN(VK_LEFT)) //만약 프레임차이가 20보다 작을때 오른쪽 키가 안눌려졌다
  chara.isDash = true;  //그러면 대쉬 플래그가 선다 
  if (chara.isDash)   // 안눌려진 후 12프레임 안에 다시 눌렸을때 그리고 다시 안눌렸을때 플래그 조절
  { if (Frame - chara.Last_Frame_Move_LEFT <=12) 
  { if (KEY_DOWN(VK_LEFT)) { chara.isDashEnd = false; chara.isDash = false; chara.Last_Frame_Move_LEFT = 0;} }
   else {chara.isDash = false; chara.isDashEnd = true; chara.Last_Frame_Move_LEFT = 0;} }
 }
}

 

 

// 캐릭터 초기화 //
void Init_Char(Base_Character &chara)
{
   chara.positionX = 0;  chara.positionY = 0; chara.Speed = 2;   chara.isCols = false;
   chara.Large_X = 23;  chara.Large_Y = 32; chara.Way_4 = MOVE_RIGHT; chara.state = NONE;
   chara.isMove = false; chara.isDash = false; chara.isJumpEnd = true;  chara.isMoveRightEnd = true;
   chara.isMoveLeftEnd = true;     chara.isDashEnd = true;
   chara.STREN = 5;   chara.INDUR = 4;  chara.VITAL = 5;  chara.LEVEL = 1;
   chara.EXP = 0;   chara.HP = 100;  chara.MP = 50;
   chara.ATK = chara.STREN*10; chara.DEF = chara.INDUR*10; chara.SPI = 10;
   chara.Last_Frame_Move_LEFT = 0; chara.Last_Frame_Move_LEFT = 0;
}

// 무기에 대한 정보 //
void Init_Weapon(Base_Weapon &weapon)
{
 weapon.Attack_Range_X = 0; weapon.isSwing = 0; weapon.positionX = 0; weapon.positionY = 0;
 weapon.Speed = 0;   weapon.state   = 0;
}

// 적에 대한 정보 //
void Init_Enemy(Base_Enemy &enem) // 적1
{
   enem.positionX = (VGfloat)Full_Screen_X-300;  enem.positionY = 0; enem.Speed = 2;    enem.isCols = false;
   enem.Large_X = 23;  enem.Large_Y = 32;  enem.Way_4 = MOVE_RIGHT; enem.state = NONE;
   enem.isMove = false;  enem.isDash = false; enem.isJumpEnd = true;  enem.isDmgdEnd = true;
   enem.STREN = 5;   enem.INDUR = 4;  enem.VITAL = 5;  enem.LEVEL = 1;
   enem.EXP = 0;   enem.HP = 100;   enem.MP = 50;
   enem.ATK = enem.STREN*10; enem.DEF = enem.INDUR*10; enem.SPI = 10;
}

void Init_Enemy_2(Base_Enemy &enem) // 적2
{
   enem.positionX = (VGfloat)Full_Screen_X-220;  enem.positionY = 0; enem.Speed = 2;    enem.isCols = false;
   enem.Large_X = 23;  enem.Large_Y = 32;  enem.Way_4 = MOVE_RIGHT; enem.state = NONE;
   enem.isMove = false;  enem.isDash = false; enem.isJumpEnd = true;  enem.isDmgdEnd = true;
   enem.STREN = 5;   enem.INDUR = 4;  enem.VITAL = 5;  enem.LEVEL = 1;
   enem.EXP = 0;   enem.HP = 100;   enem.MP = 50;
   enem.ATK = enem.STREN*10; enem.DEF = enem.INDUR*10; enem.SPI = 10;
}

// 충돌체크 //
bool Check_Cols_Fscreen(Base_Character &chara) // 전체화면 충돌 체크
{ if (chara.positionX > Full_Screen_X-50) {chara.isCols = true;}
 else if (chara.positionX < 0)   {chara.isCols = true;}
 return chara.isCols;
}
// 충돌 체크 //
VGfloat  Cols_Fscreen_Solve(VGfloat positionX, bool isCols)
{ return positionX; }

 

Who's 시트르산

?

제작중인 게임 :

Midnight Blue  (미드나잇 블루) - RPGXP

 공동제작 : 휘파람개비님

 시스템 : 45%, 스토리 : 10%, 맵 : 3%, 제작 : 1%

 CG : 2%         총 진행도 : 3%

 

 이번 게임은 공동제작인 만큼 최선을 다하겠습니다 ^^

기다려주세요~~

Comment '2'
  • profile
    하늘바라KSND 2010.11.29 23:19

    이런건 강좌에 올리시는게 어떠실런지...

  • profile
    we0 2010.11.30 16:01

    정말 유용하군요.

    이것의 장점은

    아방스의 사용법을 모르고 막게라는 곳의 도착한 초보자들한테는 유용하네요.

    단점

    너무 흔하ㄷ..<=퍽 열심히 노력한분에게 이게 무슨 말버릇이야!

     


  1. 아방스 게시물 · 댓글 작성 규칙 (최근 수정일 2015.11.25)

  2. ... 이럴수가.

  3. [액알용] 4방향 이동 / 대쉬 플래그 코드 모음

  4. 읭...

  5. 님들개귤이좀그려주샘

  6. 오늘은 자축을

  7. 아 무섭다

  8. 4번째 캐릭터 @_@;

  9. 현문님look

  10. 현문님2

  11. 챗창 모니터링

  12. 개귤이 = PS인간 = 케이준 = 힘돌이 님의 욕설에 대한 자료들

  13. 개귤이 = PS인간 = 케이준 = 힘돌이 님의 욕설에 대한 자료들2번째

  14. 설님께 선물

  15. 채팅창이 사라진듯

  16. 오늘의 그림..

  17. 세상에서 제일 빡칠때

  18. 오덕에 대해 오해하는 사람들에게(특히,글을 잘 보시길)

  19. 시트르산님

  20. 혹시나 모르니까 나의 포인트에게 애도를......

  21. 밋짱님 저 블로그 네이버 블로그 쓸레요 그냥

목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 64 Next
/ 64