Exemple #1
0
 def __init__(self):
     Listener.__init__(self)
     global lock
     global alarmLog, pathInstall, pathLog
     self._val = None
     self._lifeGui = 10
     sound_file = os.path.join("{}essa/alarm/sounds/".format(_globals.pathInstall), "alert3.wav") 
     self.som = Music(sound_file)        
def run_game():
    # 初始化,创建屏幕对象
    pygame.init()
    pygame.mixer.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    # 创建开始按钮
    play_button = Button(ai_settings, screen, "Play")

    # 创建一个用于统计游戏统计信息的实例, 创建记分牌
    stats = GameStats(ai_settings)
    sb = Scoreboard(ai_settings, screen, stats)

    # 创建一艘飞船, 子弹编组, 外星人编组
    ship = Ship(screen, ai_settings)
    bullets = Group()
    aliens = Group()
    # 创建外星人群
    gf.creat_fleet(ai_settings, screen, ship, aliens)
    # 创建背景音乐
    music = Music()
    music.bg_music.play(-1)
    # 开始循环
    while True:
        gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
                        aliens, bullets, music)
        if stats.game_active:
            ship.update()
            gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
                              bullets)
            gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens,
                             bullets)
        gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets,
                         play_button)
Exemple #3
0
class PopUp(Listener): 
    def __init__(self):
        Listener.__init__(self)
        global lock
        global alarmLog, pathInstall, pathLog
        self._val = None
        self._lifeGui = 10
        sound_file = os.path.join("{}essa/alarm/sounds/".format(_globals.pathInstall), "alert3.wav") 
        self.som = Music(sound_file)        
        
        
    def threaded(fn):
        def wrapper(*args, **kwargs):    
            threading.Thread(target=fn, args=args, kwargs=kwargs).start()
        return wrapper
    
    @threaded    
    def AlarmGui(self, msg="Alert", title="Alert", choices=("Button[1]", "Button[2]", "Button[3]"), type="alert", sound=None):
        try:
            if type == "alert":
                img = "alert.png"
            elif type == "error":
                img = "error.png"
                
            image = "{}essa/alarm/images/{}".format(_globals.pathInstall,img)
            self._val = buttonbox(msg=msg, title=title, image=image, choices=choices, default_choice="Sim",lifeGui=self._lifeGui, sounds=sound)
            self.analiza(sound)
        except:
             pass
            
    @threaded    
    def analiza(self, sound):
        while self._val is None:
            time.sleep(0.5)
        if self._val == "Ciente":
            _globals.alarmAlerts -= 1
            alarmLog.warning("Alarm Warning STOPPED - User Action;")
            sound.stop()
        else:
            alarmLog.warning("Alarm Warning STOPPED AUTOMATICALLY - USER AWAY;")
            _globals.warningAlarm.warning("Alarm Warning STOPPED AUTOMATICALLY - USER AWAY;")
            sound.stop()
            #sound.play()
            #_globals.sound = sound
            
            
            
            
    @threaded 
    def LogGui(self, title="Alert", msg="Alert", arq="Essa_test.log"):
        filename = os.path.normcase("{}{}".format(_globals.pathLog,arq))
        f = open(filename, "r")
        text = f.readlines()
        f.close()
        return codebox(msg=msg + filename, title=title, text=text)


    def process_event(self, event=None, subject=None):
        global alarmLog
        if (isinstance(event, EventGui)):
            try:
                lock.acquire()
                #print "Subject", subject
                subject.alarmGui.AlarmGui(title="Alert for "+str(subject._subjectAlarm), msg="            Notice for "+str(subject._subjectAlarm)+" !\nYour "+str(subject._alarmEvent)+" value has been reached. \n                Action required!", choices=["Ciente"],sound=self.som)                            
                alarmLog = subject._alarmLog  
                self._lifeGui = subject._lifeGui
                self.som.play()
            finally:
                lock.release()
        elif (isinstance(event,EventGuiClose)):
            try:
                lock.acquire()
                subject.alarmGui = None
                subject.alarmGui = PopUp()
                self.som.stop()
                
            finally:
                lock.release()
        else:
            print "OUTRO EVENTO"