Added Username function Added Gameobjectposition lastframe Added prototype function stepping_movement Code cleanup
106 lines
4.2 KiB
Python
106 lines
4.2 KiB
Python
import modules.User as User
|
|
import modules.Statics as Statics
|
|
import Controls
|
|
|
|
from math import pi, sin, cos
|
|
from direct.showbase.ShowBase import ShowBase
|
|
from direct.task import Task
|
|
from direct.actor.Actor import Actor
|
|
from direct.interval.IntervalGlobal import Sequence
|
|
from panda3d.core import Point3
|
|
from panda3d.core import WindowProperties
|
|
from panda3d.core import Loader
|
|
from direct.showbase.ShowBase import ShowBase #Grundmodul zum Starten eines Fenster mit Grundszene
|
|
from direct.gui.OnscreenText import OnscreenText #Ermöglicht die direkte Einblendung von Texten
|
|
from direct.gui.DirectGui import * #Ermöglicht das Einblenden von Menüs und deren Manipulation
|
|
from panda3d.core import TextNode #Texte
|
|
from direct.task import Task
|
|
from panda3d.core import Vec4, Vec3
|
|
from panda3d.core import loadPrcFile #Ermöglicht das Laden eigener Konfigurationsdatein zur Panda3D API
|
|
import random
|
|
|
|
class game(ShowBase):
|
|
__debug_mode = [0,1,2,3,4]
|
|
__debuglevel = 0
|
|
__us = User.User
|
|
__statics = Statics.statics
|
|
#__ctrl = Controls.controls
|
|
# __game_mechanics = Game_Mechanics.Game_Mechanics()
|
|
__onscreentext1 = OnscreenText
|
|
__actor1 = 0
|
|
__p3d_conf = loadPrcFile("conf/conf.prc") #Pfadangabe zum .prc File
|
|
|
|
__keymap = {"up":False,
|
|
"down":False,
|
|
"left":False,
|
|
"right":False
|
|
}
|
|
|
|
|
|
def __init__(self) -> None:
|
|
ShowBase.__init__(self)
|
|
self.__us = User.User()
|
|
self.__statics = Statics.statics()
|
|
#self.__ctrl = Controls.controls(self)
|
|
|
|
#font1 = self.loader.load_font("/usr/share/fonts/TTF/Inconsolata-UltraExpandedExtraBold.ttf")
|
|
font1 = self.loader.load_font("data/fonts/Inconsolata-UltraExpandedExtraBold.ttf")
|
|
self.__onscreentext1 = OnscreenText(self.__statics._menupoints[0], font=font1, pos= (0.1,0))
|
|
self.__onscreentext1.setText("Ich bewege mich fortlaufen!")
|
|
|
|
#self.actor1 = Actor("data/models/myfile.bam")
|
|
self.__actor1 = self.loader.load_model("data/models/myfile.bam")
|
|
self.__actor1.getPos()
|
|
self.__actor1.reparentTo(self.render)
|
|
|
|
self.accept('arrow_up', self.update_keystate, ["up", True])
|
|
self.accept('arrow_up-up', self.update_keystate, ["up", False])
|
|
self.accept('arrow_down', self.update_keystate, ["down", True])
|
|
self.accept('arrow_down-up', self.update_keystate, ["down", False])
|
|
self.accept('arrow_left', self.update_keystate, ["left", True])
|
|
self.accept('arrow_left-up', self.update_keystate, ["left", False])
|
|
self.accept('arrow_right', self.update_keystate, ["right", True])
|
|
self.accept('arrow_right-up', self.update_keystate, ["right", False])
|
|
|
|
self.taskMgr.add(self.task1, "task1")
|
|
self.taskMgr.add(self.keyboard_event, "keyboard_event")
|
|
|
|
#Zusatzfunktionen innerhalb instanzierter ShowBase-Klasse
|
|
def update_keystate(self, controlName, controlState):
|
|
self.__keymap[controlName] = controlState
|
|
|
|
def setDebugMode(self, debugmode:int):
|
|
"""DEBUGLEVEL"""
|
|
self.__debuglevel = debugmode
|
|
|
|
|
|
#Taskfunctions and definitions
|
|
def task1(self, task):
|
|
_x = -2.8 + (task.time*0.3)
|
|
#print("Task läuft seit: " + str(_x))
|
|
#print(str(self.__actor1.getPos()))
|
|
#self.__actor1.setPos(1*_x,1*_x,0)
|
|
|
|
if (_x >= 2.8000):
|
|
print("Finished")
|
|
return Task.again
|
|
return Task.cont
|
|
|
|
def keyboard_event(self, task):
|
|
|
|
if(self.__debuglevel == 4): print(self.__keymap)
|
|
|
|
if (self.__keymap['up']):
|
|
self.__actor1.setPos(self.__actor1.getPos() + Vec3(0,0.2,0))
|
|
if(self.__debuglevel >= 3): print("Nach oben!")
|
|
if (self.__keymap['down']):
|
|
self.__actor1.setPos(self.__actor1.getPos() - Vec3(0,0.2,0))
|
|
if(self.__debuglevel >= 3): print("Nach unten!")
|
|
if (self.__keymap['left']):
|
|
self.__actor1.setPos(self.__actor1.getPos() - Vec3(0.2,0,0))
|
|
if(self.__debuglevel >= 3): print("Nach links!")
|
|
if (self.__keymap['right']):
|
|
self.__actor1.setPos(self.__actor1.getPos() + Vec3(0.2,0,0))
|
|
if(self.__debuglevel >= 3): print("Nach rechts!")
|
|
|
|
return Task.cont |