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 time
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 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
loadPrcFile("conf/conf.prc") #Pfadangabe zum .prc File
@@ -324,6 +326,7 @@ class User_login:
class MyApp(ShowBase):
us = User.User
key_pressed = False
def button_select_click(self, *username:str()):
__username = username
@@ -349,6 +352,14 @@ class MyApp(ShowBase):
print("Spielerauswahl-Button wurde gedrückt!")
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
self.gameOverScreen = DirectDialog(frameSize = (-0.7, 0.7, -0.7, 0.7),
fadeScreen = 0.4,
@@ -381,13 +392,25 @@ class MyApp(ShowBase):
#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.reparentTo(self.render)
# Set Camera-Position (initial)
self.scene1_background.setPos(0, 32, 0) # (X, Z, Y)
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")
@@ -397,14 +420,14 @@ class MyApp(ShowBase):
self.camera.setPos(20 * sin(angleRadians), -20 * cos(angleRadians), 3)
self.camera.setHpr(angleDegrees, 20, 0)
return Task.cont
"""
"""
# Create 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)
if(us.checkuserdb() == False):
self.accept('enter', button_enter_pressed)
self.scene1_text.show()
@@ -420,9 +443,9 @@ class MyApp(ShowBase):
self.current_scene = 1
"""
# Set key bindings
self.accept('space', self.toggle_scene)
self.accept('escape', self.quit)
#self.accept('space', self.toggle_scene)
#self.accept('escape', self.quit)
def toggle_scene(self):
if self.current_scene == 1:
self.scene1_text.hide()
@@ -438,8 +461,15 @@ class MyApp(ShowBase):
#self.us.__del__(self.us)
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
def exampleTask(self, task):
self.btn['text'] = "Woscht" + str(self.x)
@@ -448,8 +478,21 @@ class MyApp(ShowBase):
return task.done
self.x +=1
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.run()
#TODO Änderungen
#TODO: Änderungen