Movement on Key-down Event hinzugefüg!

This commit is contained in:
2023-12-19 23:06:45 +01:00
parent ed3dab4685
commit 1cbcd5b69a

View File

@@ -1,3 +1,4 @@
from ast import If
import sqlite3 import sqlite3
import time import time
import threading import threading
@@ -290,6 +291,7 @@ from direct.gui.OnscreenText import OnscreenText #Ermöglicht die direkte Einble
from direct.gui.DirectGui import * #Ermöglicht das Einblenden von Menüs und deren Manipulation from direct.gui.DirectGui import * #Ermöglicht das Einblenden von Menüs und deren Manipulation
from panda3d.core import TextNode #Texte from panda3d.core import TextNode #Texte
from direct.task import Task 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 from panda3d.core import loadPrcFile #Ermöglicht das Laden eigener Konfigurationsdatein zur Panda3D API
loadPrcFile("conf/conf.prc") #Pfadangabe zum .prc File loadPrcFile("conf/conf.prc") #Pfadangabe zum .prc File
@@ -324,6 +326,7 @@ class User_login:
class MyApp(ShowBase): class MyApp(ShowBase):
us = User.User us = User.User
key_pressed = False
def button_select_click(self, *username:str()): def button_select_click(self, *username:str()):
__username = username __username = username
@@ -349,6 +352,14 @@ class MyApp(ShowBase):
print("Spielerauswahl-Button wurde gedrückt!") print("Spielerauswahl-Button wurde gedrückt!")
us = User.User() us = User.User()
self.pandaActor = Actor("models/panda-model",
{"walk": "models/panda-walk4"})
self.pandaActor.setScale(0.005, 0.005, 0.005)
self.pandaActor.reparentTo(self.render)
self.myAnimControl = self.pandaActor.getAnimControl('walk') #get the AnimControl
#Erstellt ein DialogFenster #Erstellt ein DialogFenster
self.gameOverScreen = DirectDialog(frameSize = (-0.7, 0.7, -0.7, 0.7), self.gameOverScreen = DirectDialog(frameSize = (-0.7, 0.7, -0.7, 0.7),
fadeScreen = 0.4, fadeScreen = 0.4,
@@ -381,7 +392,8 @@ class MyApp(ShowBase):
#self.taskMgr.doMethodLater(0.8,self.exampleTask, "exampleTask") #Hängt einen zustäzlichen Task in den Taskmanager ein #self.taskMgr.doMethodLater(0.8,self.exampleTask, "exampleTask") #Hängt einen zustäzlichen Task in den Taskmanager ein
self.gameOverScreen.show() self.gameOverScreen.hide()
self.scene1_background = self.loader.loadModel("data/panda_example/Environment/environment") self.scene1_background = self.loader.loadModel("data/panda_example/Environment/environment")
self.scene1_background.reparentTo(self.render) self.scene1_background.reparentTo(self.render)
# Set Camera-Position (initial) # Set Camera-Position (initial)
@@ -389,6 +401,17 @@ class MyApp(ShowBase):
self.scene1_background.setP(90) self.scene1_background.setP(90)
self.accept('r', self.test)
self.accept('r-up', self.test2)
self.taskMgr.add(self.check_keyboard_input, "check_keyboard_input")
if(us.checkuserdb() == False):
self.accept('enter', button_enter_pressed)
#self.taskMgr.add(self.spinCameraTask, "SpinCameraTask") #self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")
def spinCameraTask(self, task): def spinCameraTask(self, task):
@@ -397,14 +420,14 @@ class MyApp(ShowBase):
self.camera.setPos(20 * sin(angleRadians), -20 * cos(angleRadians), 3) self.camera.setPos(20 * sin(angleRadians), -20 * cos(angleRadians), 3)
self.camera.setHpr(angleDegrees, 20, 0) self.camera.setHpr(angleDegrees, 20, 0)
return Task.cont return Task.cont
""" """
# Create scene 1 # Create scene 1
self.scene1 = self.render.attachNewNode("Scene 1") self.scene1 = self.render.attachNewNode("Scene 1")
self.scene1_text = OnscreenText(text="Scene 1", pos=(0, 0), scale=0.1, align=TextNode.ACenter) self.scene1_text = OnscreenText(text="Scene 1", pos=(0, 0), scale=0.1, align=TextNode.ACenter)
if(us.checkuserdb() == False):
self.accept('enter', button_enter_pressed)
self.scene1_text.show() self.scene1_text.show()
@@ -420,8 +443,8 @@ class MyApp(ShowBase):
self.current_scene = 1 self.current_scene = 1
""" """
# Set key bindings # Set key bindings
self.accept('space', self.toggle_scene) #self.accept('space', self.toggle_scene)
self.accept('escape', self.quit) #self.accept('escape', self.quit)
def toggle_scene(self): def toggle_scene(self):
if self.current_scene == 1: if self.current_scene == 1:
@@ -438,8 +461,15 @@ class MyApp(ShowBase):
#self.us.__del__(self.us) #self.us.__del__(self.us)
app.finalizeExit() app.finalizeExit()
#Dieser Task wird bei Berechnungs jeden Frames ausgeführt def test(self):
print("Taste gedrückt")
self.key_pressed = True
def test2(self):
print("Taste losgelassen")
self.key_pressed = False
#Dieser Task wird bei Berechnungs jeden Frames ausgeführt
x=0 x=0
def exampleTask(self, task): def exampleTask(self, task):
self.btn['text'] = "Woscht" + str(self.x) self.btn['text'] = "Woscht" + str(self.x)
@@ -449,7 +479,20 @@ class MyApp(ShowBase):
self.x +=1 self.x +=1
return task.again return task.again
def check_keyboard_input(self, task):
dt = globalClock.getDt()
print(self.key_pressed)
if(self.key_pressed == True):
print("Taste gedrückt gehalten!")
self.pandaActor.setPos(self.pandaActor.getPos() + Vec3(0, 5.0*dt, 0))
if(self.myAnimControl.isPlaying() != True):
self.pandaActor.play("walk")
else:
pass
return task.cont
app = MyApp() app = MyApp()
app.run() app.run()
#TODO Änderungen #TODO: Änderungen