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__/User.cpython-39.pyc
/dist
/build
/user.db
/.vs
/SnakeTest.spec

View File

@@ -7,7 +7,7 @@ import User
import sys
import tkinter as tk
from direct import task
from tkinter import SUNKEN, Scale, StringVar, Tcl, messagebox
from tkinter import Scale, StringVar
from random import random
#TODO Klassen erstellten
@@ -215,8 +215,8 @@ def recursive(zahl):
def main():
t = threading.Thread(target=guithread ,args=())
t.start()
#t = threading.Thread(target=guithread ,args=())
#t.start()
#recursive(0)
#while(True):
# pass
@@ -294,22 +294,56 @@ from direct.task import Task
from panda3d.core import loadPrcFile #Ermöglicht das Laden eigener Konfigurationsdatein zur Panda3D API
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):
us = User.User
def button_select_click(self, *username:str()):
__username = username
def button_select_click_login(self):
print(self.__username)
def __init__(self):
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()
#Erstellt ein DialogFenster
self.gameOverScreen = DirectDialog(frameSize = (-0.7, 0.7, -0.7, 0.7),
fadeScreen = 0.4,
relief = DGG.FLAT)
#Erstellt einen Button zum Parent-Dialogfenster
self.btn = DirectButton(text = "Quit",
command = self.quit,
@@ -322,6 +356,18 @@ class MyApp(ShowBase):
#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)
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.gameOverScreen.show()
@@ -371,10 +417,10 @@ class MyApp(ShowBase):
def quit(self):
#self.taskMgr.destroy() #Bereitet unter Linux Probleme
self.destroy()
time.sleep(1)
self.us.__del__(self.us)
sys.exit()
#Dieser Task wird bei Berechnungs jeden Frames ausgeführt
"""
x=0

View File

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