나는이 문제를 지나치게 생각하지 않으면 최상의 결과를 얻을 수 있으므로 다른 저장 데이터와 함께 저장 한 다음 이전 상태에 액세스해야 할 때 주문형으로로드하는 간단한 키 값 저장 시스템을 게임에 구현하기 만하면됩니다.
흐름은 다음과 같이 보일 수 있습니다.
- 파일에서로드 레벨
- 타일 / 객체를 배치하기 전에 "영구"속성이 있는지 확인하십시오.
- 예인 경우 : 저장된 키-값 쌍을 확인하여 속성과 일치하는 키를 확인하고 적절한 값을 가져옵니다.
- 그렇지 않은 경우 : 개체를 정상적으로 배치하십시오
- 플레이어가 레벨을 나가면 "지속적"속성을 가진 모든 객체를 통해 게임 루프를 저장하고 키-값 쌍으로 저장합니다.
간단한 2D 게임에 사용하는 것을 기반으로 한 의사 코드 예제는 다음과 같습니다.
def load_map(map):
for y in range(0, height):
for x in range(0, width):
tile = map[x, y]
for property in tile.properties:
if is_persistent(property.name):
// Name prefixed with "persistent" means that it's persistent
// so we load the value from out persistent storage
property.value = persistent_values[property.name]
def save_map(map):
... everything in load_map ...
if (property.name.matches("persistent_*")):
// Name prefixed with "persistent" means that it's persistent
// so we save the value to persistent storage
persistent_values[property.name] = property.value
def is_persistent(name):
return name.matches("persistent_*") and persistent_values.contains(name)
그런 다음이 속성을 사용하여 상태를 확인할 수 있습니다.
def draw():
if properties["persistent_is_pressed"].value:
draw_sprite(button_pressed)
else:
draw_sprite(button_unpressed)
def on_pressed():
properties["persistent_is_pressed"].value = not properties["persistent_is_pressed"].value
Tiled 와 같은 타일 맵 편집기를 사용하는 경우 다음과 같은 속성을 추가하는 것은 매우 쉽습니다.
희망적으로 이것은 가능한 간단한 상태를 구현하는 방법에 대한 아이디어를 줄 것입니다!