def test_addEvent(self): EM.events = [] SM.init() event1 = Event(Zeit(14, 30), Zeit(15, 00)) event2 = Event(Zeit(16, 30), Zeit(17, 00)) event3 = Event(Zeit(14, 45), Zeit(17, 00)) lsg1 = Event(Zeit(15, 0), Zeit(16, 30)) EM.addEvent(event1) EM.addEvent(event2) # hinzufügen ohne Überlapp self.assertEqual( str(EM.events[0]), f"Start 14:30 Ende 15:00 am {EM.events[0].startzeit.erhalteDatum()}" ) self.assertEqual( str(EM.events[1]), f"Start 16:30 Ende 17:00 am {EM.events[1].startzeit.erhalteDatum()}" ) # mit überlapp EM.addEvent(event3) self.assertTrue(EM.hatEvent(lsg1)) self.assertTrue(EM.hatEvent(event1)) self.assertTrue(EM.hatEvent(event2))
def Test_pixelZeit(self): SM.canvasHeight = 600 z = Zeit(12, 0) zeit1 = SM.pixelZuZeit(500) y1 = SM.zeitZuPixel(zeit1) y2 = SM.zeitZuPixel(z) zeit2 = SM.pixelZuZeit(y2) self.assertEqual(500, y1) self.assertEqual(z, zeit2)
def test_zeichnen(self): from TimeManager import TimeManager as TM from Event import Event SM.init() testEvent = Event(Zeit(10, 00), TM.mittagspauseStart, False, "testevent") testNachmEvent = Event(Zeit(16, 00), Zeit(18, 30), False, "testNachm") testEvent2 = Event(Zeit(9, 30), Zeit(11, 30), False, "test") testEvent.zeichne() testNachmEvent.zeichne() testEvent2.zeichne() SM.run()
def Test_zeitZuPixel(self): SM.canvasHeight = 500 TM.aufstehzeit = Zeit(10, 0) TM.schlafenszeit = Zeit(18, 0) zeit1 = TM.aufstehzeit zeit2 = Zeit(11, 0) lsg1 = 50 # erster Valider Wert lsg2 = 100 y1 = SM.zeitZuPixel(zeit1) y2 = SM.zeitZuPixel(zeit2) self.assertEqual(y1, lsg1) self.assertEqual(y2, lsg2)
def Test_pixelZuZeit(self): SM.canvasHeight = 500 TM.aufstehzeit = Zeit(10, 0) TM.schlafenszeit = Zeit(18, 0) y1 = 50 # erster Valider Wert y2 = 100 lsg1 = TM.aufstehzeit lsg2 = Zeit(11, 0) zeit1 = SM.pixelZuZeit(y1) zeit2 = SM.pixelZuZeit(y2) self.assertEqual(str(zeit1), str(lsg1)) self.assertEqual(str(zeit2), str(lsg2))
def __init__(self): # create main game window super(GameController, self).__init__(1280, 720, "Panda Runner") # setup various managers self.screenManager = ScreenManager(self) self.stateManager = StateManager(self) self.spriteManager = SpriteManager() # load spritesheet and probably sounds in the future self.loadResources() self.start()
def main(): ScreenManager.init() TM.ladeZeiten() EM.ladeEvents() ScreenManager.zeichneHintergrund() ScreenManager.root.protocol("WM_DELETE_WINDOW", beenden) ScreenManager.run()
def verschiebeZeit(zeit, nach): from ScreenManager import ScreenManager from EventManager import EventManager as EM if zeit == TimeManager.mittagspauseStart: EM.verschiebeZeitNach(EM.mittagspause, True, nach) return elif zeit == TimeManager.mittagspauseEnde: EM.verschiebeZeitNach(EM.mittagspause, False, nach) return if zeit == TimeManager.aufstehzeit: if nach > EM.findeKleinsteStartzeit(): return None elif zeit == TimeManager.schlafenszeit: if nach < EM.findeGroessteEndzeit(): return None zeit.stunde = nach.stunde zeit.minute = nach.minute zeit.text = nach.text ScreenManager.zeichneHintergrund() ScreenManager.zeichneEventsNeu() #TimeManager.speichereZeiten() return zeit
class GameController(pyglet.window.Window): """docstring for GameController""" def __init__(self): # create main game window super(GameController, self).__init__(1280, 720, "Panda Runner") # setup various managers self.screenManager = ScreenManager(self) self.stateManager = StateManager(self) self.spriteManager = SpriteManager() # load spritesheet and probably sounds in the future self.loadResources() self.start() def start(self): # schedule update function to be called every frame # I need to add some sort of FPS setting here clock.schedule(self.update) # instantiate the main game instance # this will be changed to the menu instance when it's implemented gameState = Game(self) self.stateManager.addState('game', gameState) self.stateManager.setState('game') # prepare various resources such as sprite sheets and sounds def loadResources(self): self.spriteManager.newSheet('main', 'sprites.png') # Main update function def update(self, dt): self.screenManager.update(dt) self.draw() #main draw function def draw(self): self.screenManager.draw()
def zeichne(self): from ScreenManager import ScreenManager as SM from TimeManager import TimeManager as TM from Farbkonzept import Farbkonzept x1 = SM.canvasWidth/30 y1 = SM.zeitZuPixel(self.startzeit) x2 = x1*29 y2 = SM.zeitZuPixel(self.endzeit) if len(self.form) == 0: if self.endzeit <= TM.mittagspauseStart: self.form.append(SM.canvas.create_rectangle(x1, y1, x2, y2 ,fill=Farbkonzept.vormittag(), outline='')) if self.startzeit >= TM.mittagspauseEnde: self.form.append(SM.canvas.create_rectangle(x1, y1, x2, y2, fill=Farbkonzept.nachmittag(), outline='')) if self.startzeit >= TM.mittagspauseStart and self.endzeit <=TM.mittagspauseEnde: self.form.append(SM.canvas.create_rectangle(x1, y1, x2, y2 ,fill=Farbkonzept.mittagspause(),outline='')) self.form.append(SM.canvas.create_text(SM.canvasWidth/2, int(y1 + (y2 - y1) / 2), text=self.text, font=("Lora",9))) else: SM.canvas.coords(self.form[0], x1, y1, x2, y2) SM.canvas.coords(self.form[1], SM.canvasWidth/2, int(y1 + (y2-y1)/2)) if self.endzeit <= TM.mittagspauseStart: SM.canvas.itemconfig(self.form[0], fill=Farbkonzept.vormittag()) elif self.startzeit >= TM.mittagspauseEnde: SM.canvas.itemconfig(self.form[0], fill=Farbkonzept.nachmittag()) elif self.startzeit >= TM.mittagspauseStart and self.endzeit <= TM.mittagspauseEnde: SM.canvas.itemconfig(self.form[0], fill=Farbkonzept.mittagspause()) self.zeichneText() self.startzeit.zeichne() self.endzeit.zeichne() if self.startzeit == TM.aufstehzeit or self.endzeit == TM.schlafenszeit: SM.zeichneHintergrund()
def main(): # initialize pygame pygame.init() screen = pygame.display.set_mode((800, 600)) # set window title pygame.display.set_caption("Mayday") # set mouse visible pygame.mouse.set_visible(1) # set key repeat (copied from tutorial, not sure if needed) #pygame.key.set_repeat(1, 30) # create clock object used to limit the framerate clock = pygame.time.Clock() # create the screen manager screenManager = ScreenManager() screenManager.addScreen(Menu(), True) # main loop running = True while running: # limit to 30 fps clock.tick(30) # get all events for event in pygame.event.get(): # quit game if quit event is registered if event.type == pygame.QUIT: running = False # other events are handed down to the screen screenManager.update(event) # draw stuff screenManager.draw(screen); # actually draw the stuff pygame.display.flip()
def Run(isDebugging=False): if isDebugging == False: device = Device("127.0.0.1:62001") device.Connect() profile = Profile("GaChien") profile.Load() gameManager = GameManager(device, profile) screenManager = ScreenManager() while True: screenshot = device.CaptureScreen() if screenshot.image is None: print("Can not capture screenshot. Retry...") time.sleep(5) continue screen = screenManager.GetScreen(screenshot) screen.ShowName() gameManager.SetScreen(screen) gameManager.Play() print("") time.sleep(5) else: device = Device(None) device.Connect() profile = Profile("GaChien") profile.Load() gameManager = GameManager(device, profile) screenManager = ScreenManager() print("Debugging...") filePath = os.path.abspath("PendingScreens/Screenshot.png") screenshot = ScreenShot(filePath) screen = screenManager.GetScreen(screenshot) screen.ShowName() gameManager.SetScreen(screen) gameManager.Play()
def Test_Farben(self): SM.init() # root = Tk() # canvas = Canvas(root, width=250, height=400) # canvas.pack() #beim rectangle(x1,y1,x2,y2) koo der linken oberen und rechten unteren ecke #recvm = SM.canvas.create_rectangle(50, 50, 200, 100, fill=Farbkonzept.vormittag()) #recvmm = SM.canvas.create_rectangle(50, 100, 200, 150, fill=Farbkonzept.vormittag_markiert()) #recmi = SM.canvas.create_rectangle(50, 150, 200, 200, fill=Farbkonzept.mittagspause()) #recmim = SM.canvas.create_rectangle(50, 200, 200, 250, fill=Farbkonzept.mittagspause_markiert()) #recnm = SM.canvas.create_rectangle(50, 250, 200, 300, fill=Farbkonzept.nachmittag()) #recnmm = SM.canvas.create_rectangle(50, 300, 200, 350, fill=Farbkonzept.nachmittag_markiert()) self.text = SM.canvas.create_text(100, 20, text="Position") SM.canvas.create_text(100, 50, text=f"{SM.canvasHeight} vs {SM.screenHeight}") SM.canvas.bind("<Button-1>", self.callbackClick) SM.zeichneHintergrund() SM.run()
from ScreenManager import Box, ScreenManager from ScreenManager import BoundedBox, TextBox from ScreenManager import ListSelect from ScreenManager.Window import getScreenSize from ScreenManager import ModalWindow import gevent def printString(string): print(string) def raiseWindow(box2, options): ModalWindow.RaiseListSelect(box2, options, printString) if __name__ == '__main__': options = ['hello', 'this is a longer one. I hope it works'] manager = ScreenManager() box1 = BoundedBox(0, 0, 10, 10) box2 = TextBox(x=10, y=10, width=20, height=10) #box2 = ListSelect(options, x = 10, y = 10, width = 20, height = 10) manager.addBox(box1) manager.addBox(box2) gevent.spawn_later(1, raiseWindow, box2, options) manager.setRoot(root) manager.run()
def zeichne(self): from ScreenManager import ScreenManager as SM from Farbkonzept import Farbkonzept x1 = SM.canvasWidth / 30 y1 = SM.zeitZuPixel(self) x2 = x1 * 29 x_mitteStart = SM.canvasWidth / 2 - 2 * x1 x_mitteEnde = SM.canvasWidth / 2 + 2 * x1 yVerschiebung = SM.canvasHeight / 80 xVerschiebung = x1 * 3 if len(self.form) == 0: if self.event is None: #achtung form kann jetzt 2 oder 3 einträge haben self.form.append( SM.canvas.create_line(x1, y1, x_mitteStart, y1, fill=Farbkonzept.Linien())) self.form.append( SM.canvas.create_line(x_mitteEnde, y1, x2, y1, fill=Farbkonzept.Linien())) self.form.append( SM.canvas.create_text(SM.canvasWidth / 2, y1, text=self.text, font=("cinzel", 9))) elif self.event.startzeit == self: self.form.append( SM.canvas.create_line(x1, y1, x2, y1, fill=Farbkonzept.Linien())) self.form.append( SM.canvas.create_text(xVerschiebung, y1 + yVerschiebung, text=self.text, font=("cinzel", 9))) elif self.event.endzeit == self: self.form.append( SM.canvas.create_line(x1, y1, x2, y1, fill=Farbkonzept.Linien())) self.form.append( SM.canvas.create_text(SM.canvasWidth - xVerschiebung, y1 - yVerschiebung, text=self.text, font=("cinzel", 9))) #elif what happended else: if self.event is None: SM.canvas.coords(self.form[0], x1, y1, x_mitteStart, y1) SM.canvas.coords(self.form[1], x_mitteEnde, y1, x2, y1) SM.canvas.delete(self.form[2]) self.form[2] = SM.canvas.create_text(SM.canvasWidth / 2, y1, text=self.text, font=("cinzel", 10)) SM.canvas.coords(self.form[2], SM.canvasWidth / 2, y1) SM.canvas.itemconfig(self.form[0], fill=Farbkonzept.Linien()) SM.canvas.itemconfig(self.form[1], fill=Farbkonzept.Linien()) SM.canvas.itemconfig(self.form[2], text=self.text) elif self.event.startzeit == self: SM.canvas.coords(self.form[0], x1, y1, x2, y1) SM.canvas.coords(self.form[1], xVerschiebung, y1 + yVerschiebung) SM.canvas.itemconfig(self.form[0], fill=Farbkonzept.Linien()) SM.canvas.itemconfig(self.form[1], text=self.text) elif self.event.endzeit == self: SM.canvas.coords(self.form[0], x1, y1, x2, y1) SM.canvas.coords(self.form[1], SM.canvasWidth - xVerschiebung, y1 - yVerschiebung) SM.canvas.itemconfig(self.form[0], fill=Farbkonzept.Linien()) SM.canvas.itemconfig( self.form[1], text=self.text ) #könnten hier jeweils noch mit fill die textfarbe ändern
def callbackClick(self, event): SM.canvas.itemconfig(self.text, text=str(event.x) + " " + str(event.y) + " " + str(SM.pixelZuZeit(event.y)))