Header

  1. View current page

    migurazi의 개발 노트 season 1

Profile_image?t=1246427011&type=small
MFC, VC++ 6.0, Serial / TCP/IP, LED Signboard, Application, Program, Programmer
18

Project Backup

사용 키 : Key Bind

 

 

2009/09/22

소스 :  LodeRunner_20090922.rar

변경 사항

  1. 충돌 처리 - 같은 enemy끼리의 처리

 

문제는.. 내 컴퓨터만 그런지는 모르겠지만, 가끔 버벅인다. 이.. 이걸 어쩌지?

 

2009/09/19

소스 :  LodeRunner_20090919.rar

변경 사항

  1. Enemy가 Player의 옆 Cell에 오면 더이상 오지 않는 버그 수정
  2. Player가 떨어지는 중에 Gold를 먹지 못하는 버그 수정
  3. Player가 Gold를 먹으면 Map 상태가 바뀐다. 그런 뒤 다시 GamePlay 혹은 LevelEditor 시에 gold가 보이지 않는다.
  4. Enemy가 정해진 확률에 따라 Gold를 가져가기도 하고, 내려 놓기도 한다.

 

해야 할 일

 

  1. Enemy가 벽돌속에 갇혀있을때는 Player가 Fall 하면 안된다.
  2. 벽돌속에 갇힌 Enemy가 빠져나오는 Animation 처리
  3. 충돌 처리 - 같은 enmey끼리의 처리
  4. gold를 가지고 있는 enemy가 벽돌에 빠질때는 gold를 내려놓는 행위 


 

2009/09/15

소스 : LodeRunner20090915.rar

변경사항

  1. EnableMove, IsFall등의 함수를 Stage에서 CharacterManager로 옮김 (충돌검사를 더 쉽게 하기 위해서)
  2. Gold와 Reborn Place의 List 유지 (Stage class)
  3. Character의 움직임 버그 수정

    • 아래로 내려가면 무조건 가능하던 버그 수정
    • 판 벽돌에 Enemy는 못움직이고 Player는 통과함
    • 추후 Enemy는 다시 올라오는 기능 추가해야 함

 

 

2009/09/14

소스 : LodeRunner20090914.rar

변경사항

  1. Player/Enemy Texture 변경

 

구글링을 통해 얻은 Sprite : 무슨 Rockman Character 같긴 한데..

rockchinesesprites.gif

 

별로 한 일이 없다. Character의 Texture Size가 바뀔때 움직임을 매끄럽게 처리하려고 이것 저것 해보다가 포기.

Player의 그림도  그림은 잰병~ 이라서, 구글링을 통해 얻은 Texture를 잘라붙여서 만들었음.

Enemy같은 경우는 Player랑 똑같은데, 색깔만 붉은 색으로 변경. (이정도가 나의 한계 T_T)

 

충돌 검사나 해야 겠다 T_T

 

2009/09/10

소스 : LodeRunner20090910.rar

변경사항

  1. CharacterTextureManager Class 만듬
  2. 이제 Player와 Enemy. 각 상황에 맞는 Sprite Texture  File만 있으면 될듯
  3. 맵과 움직임에 대해서 어떤 Animation을 사용하는지 Statue 값 변경
  4. Font수정 - SpriteFont를 bitmap으로 처리 해봄
  5. Character(Player/Enemy)의 Texture 사이즈 조절 (처리해야 할 일이 더 있다)

 

해야 할 일

  1. Character(Player/Enemy) Texture
  2. 파진 벽돌일때 Player는 통과, Enemy는 빠짐
  3. Enemy의 인공지능이 파진 벽돌은 몰라야 함.
  4. 제일 밑 바닥 벽돌은 파도 적들이 안빠짐.
  5. 충돌 검사
  6. Gold 가저가기 놓아두기

 

2009/09/09

소스 : LodeRunner20090909.rar

변경사항

  1. Enemy의 움직임 구현 ( A* 길찾기 알고리즘 코드 이용)
  2. Float 버그 수정 (Release 컴파일한 실행화일로 시작시 Game Play시 프로그램 죽는 버그 수정)

 

뭐 이것 하나만으로도, 개인적으로 참 벅찬 감동이...............

드디어 LodeRunner가 달려가야 할 이유 2가지 중 한가지를 구현했습니다.

금을 얻기 위해서와, 추적자(Enemy)를 피하기 위해서 중에서.. (추적자)Enemy의  움직임을 구현했습니다.

매 UpdateTime마다 주인공의 위치를 A* 길찾기 알고리즘 으로 찾아서 그 방향으로 정해진 Speed만큼 움직입니다.

다음 UpdateTime이 되면 다시 위치 추적.

 

예전 LodeRunner 게임의 인공지능 정도 되는거 같습니다. 음.. 실은 좀 움직임이 다를지도 모르겠습니다.

(예전의 LodeRunner는 높이가 같은데, 내가 바로 갈수  없는 위치라면  (돌아서 가야 한다면) 안가고 기다리고 있습니다만...

 이 알고리즘으로 하면, 아마 쫒아오지 않을까 싶네요. )

 

혹시라도 이 프로젝트를 주시하고 계신 분들이 계시다면, 적의 움직임을 테스트 해봐 주시면 고맙겠습니다.

 

금(Gold)와 추적자(Enemy)에 대해서 충돌검사를 아직 않하고 있습니다. 맘대로 돌아다니셔도 됩니다.

지도는 LevelEditor에서 만드시고 저장하셔야 함.

 

사용 키는 Key Bind 문서를 참고 바람.

 

ps. 알고리즘을 조금 더 수정. 줄을 타고 넘어 오기도 하네요 T_T

ps2. 길찾기 알고리즘에서 버그가 있더군요. 특별한건 아니고 Compare에서 float 값 비교해서 1, -1, 0 의 return 값을 내는 건데,

      float의 특성상 그냥 연산했더니, 0 (즉 값이 같을때)를 return 못해준다고... (그것때문이 프로그램이 죽어버리다니... 나~~쁜)

      delta를 적용해서 버그 수정했습니다.

      열심히 주석을 달아보고 있습니다. 어느새 프로젝트가 많이 커져서 말이죠. 저도 잘 모르는 Class들도 있고 (머리가 나쁜거 아냐?)

 

2009/09/06

 

소스 : LodeRunner20090906.rar

변경사항

  1. MapType중에 일부 제거. CellAttribute로 변경
  2. Character Class 생성 (Player Class와 Enemy Class가 상속 받음)
  3. CharacterManager Class 생성
  4. Stage에서 CanMove와 IsFall 구현

 

계획도 세우지 않고 마구잡이로 만들다 보니, 도중에 수정해야 할 내용이 많이 있군요.

금이랑, Player 시작점, Enemy들 시작점, Enemy Regen되는 위치, 그리고 탈출할 탈출구를  MapType으로 넣는 것이 아니라

MapType중 Space일때의 속성으로 처리해 버렸습니다. (기존에는 금만 그런 식으로 처리 했었죠)

그래서 이것 저것 바꾸고, 또 Map에서의 Character의 움직임에 대해서 이것저것 처리해 보았습니다.

 

그리하여.. 현재는.. 조잡한 Character지만 Player가 키보드에 따라 움직입니다. 그리고 줄에 메달리고, 떨어지고, 뭐 그럽니다.

(아직 땅 파는건 구현 못함 T_T)

 

다른 분들 중에 해보시는 분이 계실런지 모르겠지만, 현재로서는 Map Editor에서 Map을 한개 이상 만드시고

(Valid Check가 안되어 있으니 주의해서 만들어 주세요) 나면 Single Start가 가능합니다.

Map이 없으면 SinglePlay가 안되요.

 

Save화일은 저 같은 경우에는 C:\Documents and Settings\Owner\My Documents\SavedGames\LodeRunner\AllPlayers\stage.dat

라고 만들어 지네요 (T_T)

 

조금 까다로운 점이라면     Cell안에서 Character의 위치를 계산하는 것이 좀 힘드네요. 

 

2009/09/05

소스 : LodeRunner20090905.rar

스크린 샷 :

Level Editor

capture20090905_1.JPG

 

Play

capture20090905_2.JPG

 

 

구현

  • Sprite 좌표 계산 맞춤 (역시 난 float보다 int가 편해)
  • MapTexture와 GamePad & Buttons Texture를 Singleton으로 구현
  • StageSet도 Singleton으로 구현 (너무 남발하는 거 아닐런지)
  • Level Editor 완성

 

그래도 나름 월급 받아 먹는 직장인이니, 마냥 이것만 할수도 없고,

이제 또 할일이 생겼으니, 이 프로젝트만 붙잡고 있을수 없게 되었습니다.

진도는 조금씩 느리게 가겠지만, 계속 이것 저것 해볼 생각입니다.

 

Level Ediotor 만들때 제일 어려웠던 건... 버튼 Mapping이다.

어떤 버튼을 눌렀을때 어떠한 동작을 해야 할런지 정하는게 제일 힘들었다.

XBox360에서 돌릴 것도 아니면서 왜 GamePad에 있는 버튼만 사용하려고 하는지 원... T_T

 

앞으로 해야 할 일은...

  1. Level Editor에서 Valid Check (주인공이 두군데 이상 Map에 위치하면  안된다, Enemy의 갯수 제한. Exit(Goal)은 반드시 하나 존재해야 함. 등등)
  2. 드디어.. Game Character (Player, Enemy)의 움직임... 구현

 2009/09/04

소스 : LodeRunner20090904.rar

 

구현 :

  • Map Save/Load
  • Map Editor 구현중...

 

계산을 해서 Sprite의 크기를 40x30으로 맞춰놨는데, 음.. 계산이 틀렸어요.

이... 이걸 어쩌지요?

 

2009/09/03

소스 : LodeRunner20090903.rar

스크린샷 :

capture(1).JPG

 

Sprite가 필요하다는 생각에 이것 저것 SpriteTool을 찾아보다가,  '아예 LodeRunner용으로 내가 만들자'란 생각이 들었습니다.

그래서 이틀동안 삽질을 하다가 (정말 만들기 싫더군요)

중요한건 SpriteTool이 아니라 'Game을 만들어보자 '라는 내 마음의 명령이 더 중요하다는 걸 깨달았습니다.

그래서 예전에 Icon 만들려고 다운받았던  IcoFX 프로그램으로 쓱쓱 만들어 버렸습니다.

( 이 프로그램 좋더라구요. 아이콘 만들기에는 너무 기능이 다양. )

( 처음에는 SpriteTool을 이용해서 Load/Image 편집 등등을 한 후에, Sprite sheet 로 만들려고 했는데, 일단은 필요한 Sprite마다 이미지 화일로 쓱쓱 만들어 붙였습니다)

 

위의 스크린샷은 Random으로 돌린 맵 화일, Block 부서지고 복구되는 뭐 그런 현상 테스트 해 보려고 만들었습니다.

(Game 에서 Up arrow 버튼을 누르면 동작되도록 함)

 

이제... Stage Class란걸 만들어서 거기서 map 관련 처리를 몽땅 할 예정이구요.

그리고는 Charater를 만들어서.. Hero와 Enemy를 만들어 볼 차례.

뭐 어떻게 하다보면 게임이 만들어 지겠죠...

 

 

2009/09/01

소스 :  LodeRunner20090901.rar

 

2009/08/31

소스 : LodeRunner20090831.zip

스크린샷 :

 capture.JPG

한일 :

  1. Marblets 소스 분석
  2. GameScreen/LevelEditScreen/TitleScreen 만듬
  3. 사운드 추가

    •  Music - Title, Game, GameOver, LevelEditor
    • Effect - Dig, Die, Fall, Enemy Die, Level Cleared, Got Bonus, Got Hiscore

 

할일 :

  1. Spacewar 소스 분석 - 메뉴 Select
  2. Font 구현 - Setting에서 설정된 Font를 불러올수 있나? Title Version Text로 구현
  3. Sprite Texture 구현
  4. Level Editor Layout 구현

 

Tags

History

Last edited on 09/22/2009 14:15 by migurazi

Comments (0)

    You must log in to leave a comment. Please sign in.