diff --git a/SnakeTest.py b/SnakeTest.py index 52fce4d..5fd6468 100644 --- a/SnakeTest.py +++ b/SnakeTest.py @@ -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 \ No newline at end of file +#TODO: Änderungen \ No newline at end of file