Nabudúce treba povedať pre akú verziu blenderu to chceš.
Defaultne posielam riešenia pre 2.49b.
Tento konkrétny script nejde, pretože nemá žiadne odsadenie riadkov.
Iné jazyky majú pre členenie kódu špeciálne znamienka ako {}.
Python to rozlišuje len : pre začiatok + odsadenie (tab) kódu ktorý patrí do danej časti.
Mala by si si naštudovať základy pythonu.
Ďalej máš chyby na riadku 11-16.
Premenná b neexistuje. To malo byť cont.
up = cont.sensors["up"]
Tiež nemáš odsadený kód pod if.
Na riadku 35 máš preklep s veľkým U. má tam byť malé(move.useLocalDRot = False).
Po úprave by to malo byť správne takto:
Kód:
import bge
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
print (own.position.x)
up = cont.sensors["up"]
down = cont.sensors["down"]
left = cont.sensors["left"]
right = cont.sensors["right"]
move = cont.actuators["move"]
loc = [0,0,0]
rot = [0,0,0]
if(up.positive):
loc[2] = -0.05
if(down.positive):
loc[2] = 0.05
if(left.positive):
rot[0] = -0.05
if(right.positive):
rot[0] = 0.05
move.useLocalDLoc = True
move.useLocalDRot = False
move.dRot = rot
move.dLoc = loc
cont.activate(move)
main()