Changed Projectstructure + Some changes on pygame-test

Added Username function
Added Gameobjectposition lastframe
Added prototype function  stepping_movement
Code cleanup
This commit is contained in:
2024-01-07 10:42:15 +01:00
parent 28670e7609
commit 45c730a174
7 changed files with 207 additions and 27 deletions

106
modules/Game.py Normal file
View File

@@ -0,0 +1,106 @@
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