전략게임 개발
이런 형태의 전략게임은 어떻게 만들까?.
필요한 기능들
unit object
player
enemy
움직이는 적 유닛
움직이는 않는 적 유닛
유닛 컨트롤 오브젝트
마우스를 드레그해서 유닛을 선택
빨간색으로 사각형을 그려준다
원 모양으로 유닛선택을 표시해준다
player의 hp 를 표시해준다
뷰의 이동
룸이 뷰의 크기보다 클때 뷰를 이동시킨다.
player 유닛 이동시키기
장애물 회피하여 이동하기
목표물에 도착하지 못할것을 예상하여 자동으로 멈추기
유닛들이 서로 겹칠 때 위치를 떨어트려놓기
player 유닛의 공격 설정
공격 obj 생성
무엇부터 만들까?.
유닛부터 만들자.
player 유닛 만들기.
적 유닛 만들기.
움직이는 적유닛.
움직이지 않는 적유닛.
유닛을 이동하게 하자.
유닛 하나를 선택해서 이동시켜보자.
마우스를 드레그해서 유닛을 선택하자.
빨간색으로 선택영역을 그려준다.
선택된 유닛을 표시해준다.
유닛의 hp 바를 표시해준다.
player 유닛을 이동하게 하자.
장애물 회피하여 이동하기
목표물에 도착하지 못할것을 예상하여 자동으로 멈추기
유닛들이 서로 겹칠 때 위치를 떨어트려놓기
유닛들이 도착할 위치를 미리 지정하고 처리하기
유닛이 공격하게 하자.
player 유닛이 공격하게 하자.
적에게 데미지를 주자.
공격에 필요한 변수들을 선언해 주자
목표물을 지정해 주지 않았을 때.
공격 범위 안에 들어오면 공격하게 하자.
공격 effect를 구현하자.
유닛이 파괴될때 이펙트를 구현하자.
총알 오브젝트를 처리하자.
총알의 생성
총알의 draw 그리고 이펙트를 처리하자
이펙트를 처리할 오브젝트를 생성
총알의 파괴
데미지 이펙트 생성
적 유닛이 공격하게 하자.
공격 범위 안에 들어오면 공격하게 하자.
------------------------------
목표물이 없을 때
가까운 유닛을 검색한다.
목표물이 공격범위안에 들어오면 target 지정한다.
목표물이 있을 때
공격지정하고.
목표물을 향해 총알을 발사한다.
공격범위를 벗어나면 목표물을 해제한다.
미니맵을 만들자.
미니맵에서 드레그해서 뷰를 이동시키기.
미니맵에서 선택된 유닛 이동시키기.
Pillage & Plunder
Sprites.
Sounds.
Backgrounds.
Paths.
Scripts.
Fonts.
Time Lines.
Objects.
obj_control
obj_sound
obj_player_manager B+
obj_ai_manager A
obj_shroud A
obj_minimap A
obj_cursor A
obj_cursor_menu A
obj_moveindicator B+
obj_buildcircle B+
obj_sightcircle_32 A
obj_sightcircle_96 A
obj_sightcircle_128 A
obj_sightcircle_160 A
obj_sightcircle_192 A
obj_sightcircle_224 A
obj_sightcircle_256 A
obj_sightcircle_320 A
obj_mapfeature un
obj_free A
obj_impassable A
obj_impassable_water
obj_targeter
obj_node
obj_blueprint_parent A
obj_blueprint_parent96
obj_blueprint_parent96*128
obj_blueprint_parent128
obj_blueprint_parent128*96
obj_revealer
obj_mineworker
obj_returnworker
obj_good_parent
obj_evil_parent
building
obj_building_parent 0
obj_building_mask_parent 0
obj_building_ally_parent 0
obj_building_enemy_parent 0
obj_building_production_mask
obj_building_96_mask
obj_building_96*128_mask
obj_building_128*96_mask
obj_building_128_mask
obj_rubble
neutral
obj_building_neutral_parent
obj_building_neutral_mine
obj_building_neutral_tree1
obj_building_neutral_shrub1
obj_building_neutral_rock1
good
obj_building_good_parent
obj_building_good_castle
obj_building_good_house
obj_building_good_barracks
obj_building_good_tower
obj_building_good_smith
evil
obj_building_good_parent
obj_building_good_castle
obj_building_good_house
obj_building_good_barracks
obj_building_good_tower
obj_building_good_smith
obj_building_explosion
Button
obj_button_parent 0
building
obj_button_building_castle
obj_button_building_house
obj_button_building_barracks
obj_button_building_tower
obj_button_building_smith
units
obj_button_unit_worker
obj_button_unit_soldier
obj_button_unit_cannon
technology
obj_button_technology_weapons1
obj_button_technology_weapons2
obj_button_technology_armor1
obj_button_technology_armor2
projectiles
obj_projectile_soldier
obj_projectile_soldier_impact
obj_projectile_cannon
obj_projectile_cannon_impact
units
obj_units_parent 0
good
obj_unit_good_parent
obj_unit_good_worker
obj_unit_good_soldier
obj_unit_good_cannon
obj_unit_good_biological_dead
evil
obj_unit_evil_parent
obj_unit_evil_worker
obj_unit_evil_soldier
obj_unit_evil_cannon
obj_unit_evil_biological_dead
neutral
obj_unit_mechanical_dead
obj_startlocation 0
obj_ai_start 0
obj_ai_strongpoint 0
obj_button_mission 0
obj_menu_control A
obj_objective 0
obj_hud_mask A
obj_damage 0
obj_main A
Rooms.
Specials (n/a)