class Title(Screen): def __init__(self): SoundManager().load_track("shop_track2.ogg") SoundManager().play(-1) self.background = SimpleBox(pygame.Rect(0,0,480,320)) self.background.add_sprite(MSprite(1,Point(0,0),Resources().title_bg)) self.title_box = SimpleBox(pygame.Rect(Static.center(0,480,Static.width),0,480,280)) self.title_box.add_sprite(MSprite(1,Point(0,0),Resources().title)) self.press_start_box = SimpleBox(pygame.Rect(Static.center(0,480,Static.width),280,480,12)) text = MText(1,Point(0,0),480,Resources().font24,"PRESS START",Static.gray,[MTextEffect.blinking]) text.loc.x = Static.center(0,text.image.get_width(),480) self.press_start_box.add_sprite(text) return def draw(self,screen): self.background.draw(screen) self.title_box.draw(screen) self.press_start_box.draw(screen) return def update(self): self.background.update() self.title_box.update() self.press_start_box.update() if(InputManager().key_pressed(MKey.BUTTON_1,True)): GameManager().change_screen(GameManager().create_monster,False) return def open(self): self.title_box.set_position((self.title_box.bg.rect.x,-500)) self.title_box.set_tween((self.title_box.bg.rect.x,0)) return
class CreateMonster(Screen): def __init__(self): self.background = SimpleBox(pygame.Rect(0,0,480,320)) self.background.add_sprite(MSprite(1,Point(0,0),Resources().title_bg)) self.title = SimpleBox(pygame.Rect(Static.center(0,256,Static.width),-50,256,32),Static.beige,False,True) self.title.add_sprite(MText(0,Point(20,3),256,Resources().font24,"Choose a name!",Static.gray)) self.monster = SimpleBox(pygame.Rect(200,-100,0,0)) self.monster.add_sprite(MSprite(1,Point(0,0),Resources().monster_placeholder)) self.virtual_keyboard = VirtualKeyboard(Point(50,600)) self.name = "" self.name_container = SimpleBox(pygame.Rect(Static.center(0,256,Static.width),-50,256,32),Static.gray,False,True) self.name_container.add_sprite(MText(0,Point(20,3),256,Resources().font24,"",Static.white)) return def draw(self,screen): self.background.draw(screen) self.title.draw(screen) self.monster.draw(screen) self.name_container.draw(screen) self.virtual_keyboard.draw(screen) return def update(self): self.background.update() self.title.update() self.monster.update() self.name_container.update() self.virtual_keyboard.update() if self.virtual_keyboard.pressed_key != "": if self.virtual_keyboard.pressed_key == "<-": self.name = self.name[:-1] self.name_container.get_sprite(0).set_text(self.name) elif self.virtual_keyboard.pressed_key == "GO": if self.name != "": GameManager().change_screen(GameManager().game_screen,False) else: self.name = self.name + self.virtual_keyboard.pressed_key self.name_container.get_sprite(0).set_text(self.name) if InputManager().key_pressed(MKey.BUTTON_2,True): GameManager().change_screen(GameManager().game_screen,False) return def open(self): self.name = "" self.name_container.get_sprite(0).set_text(self.name) self.title.set_tween((Static.center(0,256,Static.width),15)) self.monster.set_tween((200,60)) self.name_container.set_tween((Static.center(0,256,Static.width),135)) self.virtual_keyboard.open(Point(50,175)) return def close(self): self.title.set_position((Static.center(0,256,Static.width),-100)) self.monster.set_position((200,-100)) self.name_container.set_position((Static.center(0,256,Static.width),-100)) self.virtual_keyboard.close(Point(50,600)) return
class VirtualKeyboard(Window): def __init__(self,origin = Point(0,0)): super().__init__(origin) self.keyboard = SimpleBox(pygame.Rect(origin.x,origin.y,0,0)) self.keys = [[0]*3 for i in range(10)] self.selected = (0,0) alpha_count = 0 self.pressed_key = "" for y in range(0,3): for x in range(0, 10): key = SimpleBox(pygame.Rect(0,0,0,0)) if alpha_count < 26: key = SimpleBox(pygame.Rect(x * 38,y * 38,24,24),Static.beige,False,True) key.add_sprite(MText(0,Point(7,5),24,Resources().font12,Static.alpha[alpha_count])) key.data1 = Static.alpha[alpha_count] if alpha_count == 26: key = SimpleBox(pygame.Rect(x * 38,y * 38,62,24),Static.beige,False,True) key.add_sprite(MText(0,Point(7,5),24,Resources().font12,"<-")) key.data1 = "<-" if alpha_count == 28: key = SimpleBox(pygame.Rect(x * 38,y * 38,62,24),Static.beige,False,True) key.add_sprite(MText(0,Point(7,5),24,Resources().font12,"GO!")) key.data1 = "GO" alpha_count += 1 self.keys[x][y] = key self.keyboard.add_child(key) self.keys[self.selected[0]][self.selected[1]].bg.set_color(Static.regent_gray) def update(self): self.keyboard.update() previous = self.selected keychange = False self.pressed_key = "" if InputManager().key_pressed(MKey.RIGHT,True): if self.selected[0] < 9: self.selected = (self.selected[0] + 1,self.selected[1]) keychange = True if InputManager().key_pressed(MKey.DOWN,True): if self.selected[1] < 2: self.selected = (self.selected[0],self.selected[1] +1) keychange = True if InputManager().key_pressed(MKey.LEFT,True): if self.selected[0] > 0: self.selected = (self.selected[0] -1,self.selected[1]) keychange = True if InputManager().key_pressed(MKey.UP,True): if self.selected[1] > 0: self.selected = (self.selected[0],self.selected[1]-1) keychange = True if keychange == True: if(self.selected[0] == 7 and self.selected[1] == 2): self.selected = (6, 2) if(self.selected[0] == 9 and self.selected[1] == 2): self.selected = (8, 2) if previous == self.selected: self.selected = (8,2) self.keys[previous[0]][previous[1]].bg.set_color(Static.beige) self.keys[self.selected[0]][self.selected[1]].bg.set_color(Static.regent_gray) if InputManager().key_pressed(MKey.BUTTON_1,True): self.pressed_key = self.keys[self.selected[0]][self.selected[1]].data1 def draw(self, screen): self.keyboard.draw(screen) #for row in self.keys: # for k in row: # k.draw(screen) def open(self,loc): self.keyboard.set_tween((loc.x,loc.y)) return def close(self,loc): self.keyboard.set_position((loc.x,loc.y)) return