From a14bc8fba4053923537c39af95ace9ebcb45eac5 Mon Sep 17 00:00:00 2001 From: administrator Date: Mon, 18 Dec 2023 21:58:21 +0100 Subject: [PATCH] =?UTF-8?q?Buttons=20zur=20Nutzerauswahl=20hinzugef=C3=BCg?= =?UTF-8?q?t.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Funktion noch nicht final --- .gitignore | 4 ++++ SnakeTest.py | 68 +++++++++++++++++++++++++++++++++++++++++++--------- User.py | 2 +- 3 files changed, 62 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 5a88166..d18e084 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,8 @@ /__pycache__ /__pycache__/User.cpython-39.pyc +/dist +/build /user.db +/.vs +/SnakeTest.spec diff --git a/SnakeTest.py b/SnakeTest.py index 312e897..04a530d 100644 --- a/SnakeTest.py +++ b/SnakeTest.py @@ -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, @@ -321,7 +355,19 @@ class MyApp(ShowBase): 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_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 @@ -386,4 +432,4 @@ class MyApp(ShowBase): return task.again """ app = MyApp() -app.run() \ No newline at end of file +app.run() diff --git a/User.py b/User.py index 4863fd6..9c4389c 100644 --- a/User.py +++ b/User.py @@ -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