Movement on Key-down Event hinzugefüg!
This commit is contained in:
61
SnakeTest.py
61
SnakeTest.py
@@ -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,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.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)
|
||||||
self.scene1_background.setPos(0, 32, 0) # (X, Z, Y)
|
self.scene1_background.setPos(0, 32, 0) # (X, Z, Y)
|
||||||
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")
|
||||||
|
|
||||||
@@ -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,9 +443,9 @@ 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:
|
||||||
self.scene1_text.hide()
|
self.scene1_text.hide()
|
||||||
@@ -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)
|
||||||
@@ -448,8 +478,21 @@ class MyApp(ShowBase):
|
|||||||
return task.done
|
return task.done
|
||||||
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
|
||||||
Reference in New Issue
Block a user