Buttons zur Nutzerauswahl hinzugefügt.

Funktion noch nicht final
This commit is contained in:
2023-12-18 21:58:21 +01:00
parent 47b58bbf03
commit a14bc8fba4
3 changed files with 62 additions and 12 deletions

4
.gitignore vendored
View File

@@ -4,4 +4,8 @@
/__pycache__ /__pycache__
/__pycache__/User.cpython-39.pyc /__pycache__/User.cpython-39.pyc
/dist
/build
/user.db /user.db
/.vs
/SnakeTest.spec

View File

@@ -7,7 +7,7 @@ import User
import sys import sys
import tkinter as tk import tkinter as tk
from direct import task from direct import task
from tkinter import SUNKEN, Scale, StringVar, Tcl, messagebox from tkinter import Scale, StringVar
from random import random from random import random
#TODO Klassen erstellten #TODO Klassen erstellten
@@ -215,8 +215,8 @@ def recursive(zahl):
def main(): def main():
t = threading.Thread(target=guithread ,args=()) #t = threading.Thread(target=guithread ,args=())
t.start() #t.start()
#recursive(0) #recursive(0)
#while(True): #while(True):
# pass # pass
@@ -294,22 +294,56 @@ from direct.task import Task
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
def butten_enter_pressed():
print("Die Taste Enter wurde gedrückt!")
class User_login:
__username = str()
__us = User.User
__btn = DirectButton
def __init__(self, username:str(), us:User.User, btn:DirectButton) -> None:
print("Loginklasse erstellt")
self.__btn = btn
self.__us=us
self.__username=username
def user_select(self):
print("Wähle Spieler aus: "+self.__username)
if(self.__us.select(self.__username) == True):
print("Spieler " + self.__us.getusername() + " wurde angelegt")
print("Dein letzter Highscore: " + str(self.__us.gethighscore()))
print("Dein letzter Login: " + self.__us.getlastlogin())
print(self.__btn)
self.__btn.destroy()
#self.__btn.clearText(self.__btn)
def setButtonObject(self, btn:DirectButton):
self.__btn = btn
print(self.__btn)
class MyApp(ShowBase): class MyApp(ShowBase):
us = User.User
def button_select_click(self, *username:str()):
__username = username
def button_select_click_login(self):
print(self.__username)
def __init__(self): def __init__(self):
ShowBase.__init__(self) #Insantziert das Hauptfenster, diese stellen immer eine Instanz der ShowBase-Klasse dar ShowBase.__init__(self) #Insantziert das Hauptfenster, diese stellen immer eine Instanz der ShowBase-Klasse dar
def butten_enter_pressed():
print("Die Taste Enter wurde gedrückt!")
#print(label_input.get())
us.createuser(label_input.get())
def user_select_button():
print("Spielerauswahl-Button wurde gedrückt!")
us = User.User() us = User.User()
#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,
relief = DGG.FLAT) relief = DGG.FLAT)
#Erstellt einen Button zum Parent-Dialogfenster #Erstellt einen Button zum Parent-Dialogfenster
self.btn = DirectButton(text = "Quit", self.btn = DirectButton(text = "Quit",
command = self.quit, command = self.quit,
@@ -321,7 +355,19 @@ class MyApp(ShowBase):
if(us.checkuserdb() == False): if(us.checkuserdb() == False):
#label_enter_name_msg = DirectDialog(parent=self.gameOverScreen, text="Gib deinen Namen ein:", scale=0.05, pos=(-0.6, 0.5,0)) #label_enter_name_msg = DirectDialog(parent=self.gameOverScreen, text="Gib deinen Namen ein:", scale=0.05, pos=(-0.6, 0.5,0))
label_input = DirectEntry(parent=self.gameOverScreen, text="Name", width=15, scale = 0.05, pos=(-0.6,0.5,0), relief=SUNKEN) label_input = DirectEntry(parent=self.gameOverScreen, text="Name", width=15, scale = 0.05, pos=(-0.6,0.5,0), relief=SUNKEN)
elif(us.checkuserdb() == True):
pos_button_x = 0
pos_button_y = 0
for users in us.listallusers():
label_users = DirectButton
u = User_login(str(users), us, label_users)
label_users = DirectButton(text=str(users), command=u.user_select, parent=self.gameOverScreen, scale=0.09, pos=(-0.5,0,pos_button_y))
print(label_users)
u.setButtonObject(label_users)
#selected_user += str(users)
pos_button_y -= 0.2
#self.taskMgr.doMethodLater(0.2,self.exampleTask, "exampleTask") #Hängt einen zustäzlichen Task in den Taskmanager ein #self.taskMgr.doMethodLater(0.2,self.exampleTask, "exampleTask") #Hängt einen zustäzlichen Task in den Taskmanager ein
self.gameOverScreen.show() self.gameOverScreen.show()
@@ -371,10 +417,10 @@ class MyApp(ShowBase):
def quit(self): def quit(self):
#self.taskMgr.destroy() #Bereitet unter Linux Probleme #self.taskMgr.destroy() #Bereitet unter Linux Probleme
self.destroy() self.us.__del__(self.us)
time.sleep(1)
sys.exit() sys.exit()
#Dieser Task wird bei Berechnungs jeden Frames ausgeführt #Dieser Task wird bei Berechnungs jeden Frames ausgeführt
""" """
x=0 x=0
@@ -386,4 +432,4 @@ class MyApp(ShowBase):
return task.again return task.again
""" """
app = MyApp() app = MyApp()
app.run() app.run()

View File

@@ -46,7 +46,7 @@ class User:
print(self.__sqlhandle) print(self.__sqlhandle)
print("Datenbank wird ordentlich geschlossen\n") print("Datenbank wird ordentlich geschlossen\n")
self.__sqlhandle.close() self.__sqlhandle.close()
self.__sqlhandle = 0 #self.__sqlhandle = 0
#print(self.__sqlhandle) Debug only #print(self.__sqlhandle) Debug only