2
$\begingroup$

I'm making quite a big game with levels but I just have to figure out how to save and load the characters position. I've already managed to make it work with properties.

I've tried some things but they dont seem to work. My version is 2.76

$\endgroup$
3
  • 2
    $\begingroup$ Please elaborate a bit on what you have tried and why it didn't work. $\endgroup$ Commented Nov 10, 2016 at 19:32
  • $\begingroup$ youtube.com/watch?v=XcWsCEAqTNE I basically tried this, but it's not working. $\endgroup$ Commented Nov 10, 2016 at 21:09
  • 2
    $\begingroup$ @Luisfdez96 Very few people are going to want to watch a tutorial (however short) to answer your question. Please include details of what you have tried within the question itself, with screenshots if necessary. $\endgroup$ Commented Nov 11, 2016 at 15:21

1 Answer 1

1
$\begingroup$

Basically you can store the data to be saved in bge.logic.globalDict via Python.

The save actuator writes this data to a file.

The load actuator loads it back from file when you need it.

Then you modify the scene according to the data in bge.logic.globalDict via Python.

This means:

  • saving and loading can be easily performed by logic bricks

  • storing and restoring as very custom operations as you are the only one that knows what should be stored how. You need Python to do that.

As this can quickly become a quite complex task I suggest you look for other tutorials on save/load. Questions regarding the tutorial should be ask to the tutorial author.

Just in case a small hint is enough:

import bge

storage = bge.logic.globalDict

def storePosition(controller):
    if not controller.sensors[0].positive:
        return

    owner = controller.owner

    objectStorage = {}
    objectStorage["position"] = list(owner.worldPosition)

    storage[owner.name] = objectStorage

def restorePosition(controller):
    if not controller.sensors[0].positive:
        return

    owner = controller.owner

    objectStorage = storage.get(owner.name)
    if objectStorage:
        owner.worldPosition = objectStorage.get("position", owner.worldPosition)

If you do not enough python/bge-api to understand this code, I strongly suggest to learn it first.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .