예제 #1
0
    def __init__(self, parent=None, difficulty=1.5, practice=10):
        QtWidgets.QWidget.__init__(self, parent)
        screen = QtWidgets.QDesktopWidget().screenGeometry()
        self.setGeometry(0, 0, 900, 700)
        self.move(screen.width() / 2 - self.width() / 2,
                  screen.height() / 2 - self.height() / 2)

        self.genStim(practice)
        self.tmStim = QtCore.QTimer(self)
        self.tmStim.timeout.connect(self.StimShow)

        self.tmCue = QtCore.QTimer(self)
        self.tmCue.timeout.connect(self.CueShow)

        self.tmBlank = QtCore.QTimer(self)
        self.tmBlank.timeout.connect(self.BlankShow)

        self.lbCue = QtWidgets.QLabel(self)
        self.lbCue.setFixedSize(300, 300)
        self.lbCue.move((self.width() - self.lbCue.width()) / 2,
                        (150 - self.lbCue.height() / 2))
        self.lbCue.setText("+")
        self.lbCue.setAlignment(Qt.Qt.AlignCenter)
        self.lbCue.setFont(QtGui.QFont("Arial", 20))

        self.lbCue.hide()

        self.sounds = {
            "C": QtMultimedia.QSound("highpitch.wav"),
            "W": QtMultimedia.QSound("lowpitch.wav")
        }
        #self.tmTarget = QtCore.QTimer(self)
        #self.tmTarget.timeout.connect(self.TargetShow)

        self.lbIntro = QtWidgets.QLabel(self)
        self.lbIntro.setTextFormat(Qt.Qt.RichText)
        self.lbIntro.setText(
            '<pre>            <font size=18>欢迎参加数量计算练习实验</font><br /> <br />'
            '    计算练习包括了加法和减法,每次练习开始时会提示<span style="color: #ff0000;">加法</span>还是'
            '<span style="color: #ff0000;">减法</span>计算。<br />    加法计算时,首先在左侧呈现一组散点,'
            '随后移动至中间区域,之后再右侧呈现一组<br />散点,随后也移动到中间区域。<br />    减法计算时,'
            '首先在左侧呈现一组散点,随后移动至中央区域,之后从该区域移出若<br />干散点。<br />'
            '    两者均要求判断在中间区域的<span style="color: #ff0000;">散点数量(目标)</span>。在散点呈现之后,'
            '会在下方出现备选答案。<br />分成两种条件,如只出现一组散点,则要求判断数量的多少,如比目标少,'
            '则按<span style="color: #ff0000;">"F"键</span>,<br />多则按<span style="color: #ff0000;">"J"键</span>。'
            '如出现两组散点,怎要求判断那一侧与目标相同,左侧按"F"键,右侧按"J"键。<br /><br />    理解无误后,按回车键开始"</pre>'
        )
        self.lbIntro.setFont(QtGui.QFont("Arial", 20))
        self.lbIntro.setGeometry(0, 0, 800, 600)
        self.lbIntro.move(self.width() / 2 - self.lbIntro.width() / 2,
                          self.height() / 2 - self.lbIntro.height() / 2)
        self.lbIntro.show()
        self.round = 0
        self.bStart = False
        self.bResponse = False
        self.difficulty = difficulty  #设置任务难度,即目标散点和备选散点之间的比率,数值越高难度越小

        self.ResponseData = []
        self.iData = {}
        self.Rt = QtCore.QElapsedTimer()
예제 #2
0
 def BellRing(self, type):
     if type == 1:
         self.sound = QtMultimedia.QSound('assets/correct.wav')
     elif type == 2: 
         self.sound = QtMultimedia.QSound('assets/wrong.wav')
     else:
         self.sound = QtMultimedia.QSound('assets/congrat.wav')
     self.sound.play()
    def __init__(self, participant, experiments, delay, app):
        super().__init__()
        self.app = app
        self.participant = participant
        self.experiments = experiments
        self.delay = int(delay)
        self.counter = -1
        self.cleanwindow = False
        self.timer = QtCore.QElapsedTimer()
        self.timer.start()
        self.player = QtMultimedia.QSound("whitenoise.wav")
        self.initUI()

        self.colours = ["Red", "Green"]
        self.englishWords = [
            "tree", "egg", "file", "mushroom", "list", "example", "rectangle",
            "holy", "adventure", "chair", "mouth", "bottle", "keyboard"
        ]
        self.germanWords = [
            "baum", "ei", "datei", "pilz", "liste", "beispiel", "rechteck",
            "heilig", "abenteuer", "stuhl", "mund", "flasche", "tastatur"
        ]
        self.log = [[
            "PID", "Stimulus", "Attentive", "Distraction", "Key", "Correct",
            "Timestamp", "Reactiontime"
        ]]

        self.stimulus = "Experiment start"
        self.attentive = False
        self.distraction = False
예제 #4
0
class BulletEnemy(QGraphicsPixmapItem):
    sound_shoot2 = QtMultimedia.QSound('assets/sounds/shoot2.wav')

    def __init__(self, parent=None):
        QGraphicsPixmapItem.__init__(self, parent)
        self.setPixmap(QPixmap('assets/enemylaser.png'))
        self.sound_shoot2.play()
예제 #5
0
    def __init__(self):
        # Обязательно нужно вызвать метод супер класса
        QMainWindow.__init__(self)
        self.sound = QtMultimedia.QSound(resource_path('assets/beep.wav'))
        self.setWindowIcon(QtGui.QIcon(resource_path('assets/icon.png')))
        trayIcon = SystemTrayIcon(QtGui.QIcon(resource_path("assets/icon.png")), self)
        trayIcon.show()

        self.setMinimumSize(QSize(455, 340))    # Устанавливаем размеры
        self.setMaximumSize(QSize(455, 340))    # Устанавливаем размеры
        self.setWindowTitle("The timer!!!")
        central_widget = QWidget(self)          # Создаём центральный виджет
        self.setCentralWidget(central_widget)   # Устанавливаем центральный виджет

        exit_action = QAction("&Exit", self)    # Создаём Action с помощью которого будем выходить из приложения
        exit_action.setShortcut('Ctrl+Q')       # Задаём для него хоткей
        # Подключаем сигнал triggered к слоту quit у qApp.
        # синтаксис сигналов и слотов в PyQt5 заметно отличается от того,
        # который используется Qt5 C++
        exit_action.triggered.connect(qApp.quit)
        # Устанавливаем в панель меню данный Action.
        # Отдельного меню создавать пока не будем.
        file_menu = self.menuBar()
        file_menu.addAction(exit_action)
        self.setup_initial_state()
        self.setup_buttons()
        self.setup_display()
        self.setup_input()
        self.process_state_changes()
예제 #6
0
    def __init__(self, parent=None):
        super(Example, self).__init__(parent)
        self.setWindowTitle('辩论计时器')

        self.bt1 = QPushButton('开始', self)
        self.bt2 = QPushButton('暂停', self)
        self.bt3 = QPushButton('重置', self)
        self.bt3.setEnabled(False)

        self.total = 180
        self.warning1 = 30
        self.warning2 = 10

        self.sound1 = QtMultimedia.QSound("Warn.wav")
        self.sound2 = QtMultimedia.QSound("dindin.wav")

        self.label = QLabel()
        self.label.setText(
            str(self.total // 60) + ':' + str((self.total % 60) // 10) +
            str(self.total % 10))
        self.pe = QPalette()
        self.pe.setColor(QPalette.WindowText, Qt.black)
        self.label.setPalette(self.pe)
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setFont(QFont("Roman times", 200, QFont.Bold))

        self.bt1.clicked.connect(self.startTimer)
        self.bt2.clicked.connect(self.stopTimer)
        self.bt3.clicked.connect(self.setTimer)

        hbox = QHBoxLayout()
        hbox.addStretch(3)
        hbox.addWidget(self.bt1)
        hbox.addStretch(1)
        hbox.addWidget(self.bt2)
        hbox.addStretch(1)
        hbox.addWidget(self.bt3)
        hbox.addStretch(3)

        vbox = QVBoxLayout()
        vbox.addStretch(1)
        vbox.addWidget(self.label)
        vbox.addStretch(1)
        vbox.addLayout(hbox)

        self.setLayout(vbox)
예제 #7
0
 def __init__(self, parent=None):
     super().__init__(parent)
     self.sound = QtMultimedia.QSound(':/audio/money.wav')
     self.setObjectName('BalanceWidget')
     self.balance = QtWidgets.QLabel(UNKNOWN_BALANCE)
     self.setup_ui()
     self.balance_updater = BalanceUpdater(self)
     self.balance_updater.balance_changed.connect(self.on_balance_changed)
     self.balance_updater.start()
예제 #8
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.field_size, self.colors, self.sound = self.get_params()
        self._game_state = GameState(self.field_size, self.colors)

        self.bg_music = QtMultimedia.QSound(r'resources/bg_music.wav')
        self.bg_music.setLoops(QtMultimedia.QSound.Infinite)
        if self.sound:
            self.bg_music.play()
        self.init_ui()
예제 #9
0
 def __init__(self):
     super().__init__()
     self.initUI()
     self.size, self.padding = 32, 2
     self.mapx0, self.mapy0 = 0, 0
     self.addbomb = False
     self.control = 'k'
     self.images = {
         'b': QtGui.QPixmap('img/bomb1.png'),
         'a': QtGui.QPixmap('img/agent.png'),
         'p': QtGui.QPixmap('img/hero.png'),
         '@': QtGui.QPixmap('img/boom.png'),
         'x': QtGui.QPixmap('img/dead.png')
     }
     self.boomSound = (QtMultimedia.QSound('sounds/boom.wav'),
                       QtMultimedia.QSound('sounds/boom1.wav'),
                       QtMultimedia.QSound('sounds/boom2.wav'),
                       QtMultimedia.QSound('sounds/boom3.wav'))
     self.deadSound = QtMultimedia.QSound('sounds/dead.wav')
예제 #10
0
 def restart(self):
     engine.world = engine.World()
     engine.player = engine.Player()
     self.soundtrack = QtMultimedia.QSound('sounds/soundtrack.wav')
     self.soundtrack.setLoops(self.soundtrack.Infinite)
     self.soundtrack.play()
     #os.startfile('soundtrack.mp3')
     #s = subprocess.Popen(r'start soundtrack.mp3', stdin=subprocess.PIPE)
     self.timerEngine.start(self.timerPeriod, self)
     self.timerCounter = 0
예제 #11
0
 def getPolqa(self):
     print("get polqa data")
     if self.messageName:
         polqaDict = polqa_query.PolqaQuery(
             gc.azenqosDatabase, self.side, self.detailText
         ).getPolqa()
         if polqaDict:
             self.textEdit.setPlainText(polqaDict["output_text"])
             self.polqaWavFile = QtMultimedia.QSound(
                 gc.logPath + "/" + polqaDict["wave_file"]
             )
예제 #12
0
    def updateTimer(self):
        now = datetime.datetime.now()
        #now = now.replace(hour=8, minute=0, second=0)
        militaryh = now.strftime("%H")
        h = now.strftime("%I")
        m = now.strftime("%M")
        s = now.strftime("%S")

        self.clockText.setText(h + ":" + m + ":" + s)

        alarmh = self.alarmtime.strftime("%I")
        alarmm = self.alarmtime.strftime("%M")
        if h == alarmh and int(m) == int(alarmm) - 1 and s == "53":
            self.setOffTheAlarm()
        elif militaryh in audioFiles:
            if m == "00" and s == "00":
                self.alarm = QtMultimedia.QSound(audioFiles[militaryh])
                self.alarm.play()
            elif m == "29" and s == "57":
                self.alarm = QtMultimedia.QSound("audio/beeping.wav")
                self.alarm.play()
예제 #13
0
    def startAudio(self):
        self.playlist = QtMultimedia.QMediaPlaylist()
        self.playlist.addMedia(
            QtMultimedia.QMediaContent(
                QtCore.QUrl.fromLocalFile("Files\\Sound\\MainTheme.mp3")))
        self.playlist.setPlaybackMode(QtMultimedia.QMediaPlaylist.Loop)

        self.sound = QtMultimedia.QSound("Files\\Sound\\ClickSound.wav")

        self.audio = QtMultimedia.QMediaPlayer()
        self.audio.setPlaylist(self.playlist)
        self.audio.play()
        self.audio.setVolume(20)
예제 #14
0
 def game_over(self):
     self.game_finish = True
     self.pushButton_1.setDisabled(True)
     self.pushButton_2.setDisabled(True)
     self.pushButton_3.setDisabled(True)
     self.pushButton_4.setDisabled(True)
     self.pushButton_5.setDisabled(True)
     self.pushButton_6.setDisabled(True)
     self.pushButton_7.setDisabled(True)
     self.pushButton_8.setDisabled(True)
     self.pushButton_9.setDisabled(True)
     self.son = QtMultimedia.QSound("gameover.wav")
     self.son.play()
예제 #15
0
    def __init__(self, disable_screensaver_while_active=False):
        super().__init__()

        self.timer_time = None
        self.is_active = False
        self.is_sound_playing = False
        self.disable_screensaver_while_active = disable_screensaver_while_active
        self.disable_screensaver_state = None

        self.remaining_time_file = get_cache_path("timer")

        layout = QtWidgets.QVBoxLayout()
        self.setLayout(layout)

        self.display_widget = DisplayWidget()
        self.display_widget.setDigitCount(8)
        self.display_widget.clicked.connect(self.stop_alarm)
        self.display_widget.return_pressed.connect(self.button_action)
        layout.addWidget(self.display_widget, 1)

        self.button = QtWidgets.QPushButton()
        self.button.clicked.connect(self.button_action)
        layout.addWidget(self.button)

        self.time = QtCore.QTime()

        self.alarm_sound = QtMultimedia.QSound(
            os.path.join(os.path.dirname(os.path.realpath(__file__)), "sounds",
                         "alarm.wav"))
        self.alarm_sound.setLoops(QtMultimedia.QSound.Infinite)

        self.update_timer = QtCore.QTimer(self)
        self.update_timer.setInterval(1000)
        self.update_timer.timeout.connect(self.update_time)
        self.update_timer.start()

        if os.path.exists(self.remaining_time_file):
            with open(self.remaining_time_file, "r") as remaining_file:
                end_timestamp = int(remaining_file.readline())

                if end_timestamp > QtCore.QDateTime.currentSecsSinceEpoch():
                    self.timer_time = QtCore.QTime(
                        0, 0,
                        0).addSecs(end_timestamp -
                                   QtCore.QDateTime.currentSecsSinceEpoch())
                    self.start_timer()
                else:
                    os.unlink(self.remaining_time_file)

        self.update_time()
        self.display_widget.update_display()
예제 #16
0
    def __init__(self, sample: Sample, ct_cp: tuple, labels: list):
        super().__init__()
        self.sample = sample
        self.sound = QtMultimedia.QSound(self.sample.file)
        layout = QtWidgets.QHBoxLayout()
        self.CB = QtWidgets.QCheckBox(self.sample.file)
        self.CB.setToolTip(self.sample.file)
        label = QtWidgets.QLabel("<font color='red'>{}</font> --> <font color='green'>{}</font>".format(labels[ct_cp[1]], labels[ct_cp[0]]))
        self.play_button = QtWidgets.QPushButton()
        play_icon = QtGui.QPixmap(getIconPath(__file__, "icons/play.png"))
        self.play_button.setIcon(QtGui.QIcon(play_icon))
        self.play_button.setIconSize(QtCore.QSize(20,20))
        layout.addWidget(self.CB)
        layout.addWidget(label)
        layout.addWidget(self.play_button)
        layout.addStretch()
        layout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
        self.setLayout(layout)

        self.play_button.clicked.connect(self.play_audio)
예제 #17
0
 def __init__(self, width=16, height=16, mines=48, parent=None):
     super().__init__(parent)
     self.setObjectName('minesweeper')
     self.last_click = 0
     self.grid_width = width
     self.grid_height = height
     self.explosion_sound = QtMultimedia.QSound(':/sound/explode.wav')
     self.beep_sound = QtMultimedia.QSound(':/sound/beep.wav')
     self.break_sound = QtMultimedia.QSound(':/sound/break.wav')
     self.win_sound = QtMultimedia.QSound(':/sound/win.wav')
     self.scream_sounds = (QtMultimedia.QSound(':/sound/scream1.wav'),
                           QtMultimedia.QSound(':/sound/scream2.wav'),
                           QtMultimedia.QSound(':/sound/scream3.wav'))
     self.tile_size = (20, 20)
     self.controller = logic.Minesweeper(self.grid_width, self.grid_height)
     self.controller.mines_number = mines
     self.flag_count = 1
     self.too_fast_modal = None
     self.game_over_modal = None
예제 #18
0
    def __init__(self, result: tuple, labels: list, player: "Audio player"):
        super().__init__()
        self.file_path = result[0]
        self.sound = QtMultimedia.QSound(self.file_path)
        layout = QtWidgets.QHBoxLayout()
        self.CB = QtWidgets.QCheckBox(self.file_path)
        label = QtWidgets.QLabel(
            "<font color='red'>{}</font> --> <font color='green'>{}</font>".
            format(labels[result[2]], labels[result[1]]))
        self.play_button = QtWidgets.QPushButton()
        play_icon = QtGui.QPixmap(os.path.join(DIR_PATH, "icons/play.png"))
        self.play_button.setIcon(QtGui.QIcon(play_icon))
        self.play_button.setIconSize(QtCore.QSize(20, 20))
        layout.addWidget(self.CB)
        layout.addWidget(label)
        layout.addWidget(self.play_button)
        layout.addStretch()
        layout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
        self.setLayout(layout)

        self.play_button.clicked.connect(self.play_audio)
예제 #19
0
    def __init__(self, game, speed, sprites, state=None):
        super().__init__()
        self.game = game
        self.sound = QtMultimedia.QSound('beep.wav')
        self.controller = Controller()

        path = os.path.join("games", game)
        self.interpreter = Interpreter(path, self.controller, sprites,
                                       self.sound.play)
        if state is not None:
            self.interpreter.load_state(state)

        self.display = Display(self)
        self.display.move(0, 0)
        self.display.resize(640, 320)
        self.resize(640, 320)
        self.show()

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.main_loop)
        self.timer.start(10 - (speed / 10))
예제 #20
0
 def update(self, data: dict, loading=False):
     self.ui.search_t.setEnabled(True)
     keys = data.keys()
     if "msg" in keys:
         if not loading:
             self.client.setting.recv_message(data["chat"], data)
             QtMultimedia.QSound("/audio/msg.wav").play()
         self.recvMessage(
             "[%s][%s]: %s" % (data["time"], data["nickname"], data["msg"]),
             data["chat"],
             QtCore.Qt.AlignRight if self.client.setting.nickname
             == data["nickname"] else QtCore.Qt.AlignLeft)
     elif "info" in keys:
         print(data["info"])
     elif "users" in keys:
         print(data["users"])
     elif "chats" in keys:
         self.loadRooms(data["chats"])
     elif "status" in keys:
         self.ui.statusbar.showMessage(data["status"])
     elif "verification" in keys:
         self.verification_input()
     else:
         print(data)
예제 #21
0
    def __init__(self, parent=None):
        super(Example, self).__init__(parent)
        self.setWindowTitle('辩论计时器')

        self.bt1 = QPushButton('开始', self)
        self.bt2 = QPushButton('切换', self)
        self.bt3 = QPushButton('重置', self)
        self.bt3.setEnabled(False)
        self.bt2.setEnabled(False)

        self.total1 = 180  #可变参数
        self.total2 = 180  #可变参数

        self.warning1 = 30  #可变参数
        self.warning2 = 10
        self.warning3 = 30  #可变参数
        self.warning4 = 10

        self.sound1 = QtMultimedia.QSound("Warn.wav")
        self.sound2 = QtMultimedia.QSound("dindin.wav")

        self.label1 = QLabel()
        self.label1.setText(
            str(self.total1 // 60) + ':' + str((self.total1 % 60) // 10) +
            str(self.total1 % 10))
        self.pe1 = QPalette()
        self.pe1.setColor(QPalette.WindowText, Qt.black)
        self.label1.setPalette(self.pe1)
        self.label1.setAlignment(Qt.AlignCenter)
        self.label1.setFont(QFont("Roman times", 200, QFont.Bold))
        self.label1_1 = QLabel()
        self.label1_1.setText("正")
        self.label1_1.setPalette(self.pe1)
        self.label1_1.setAlignment(Qt.AlignCenter)
        self.label1_1.setFont(QFont("Roman times", 125, QFont.Bold))

        self.label2 = QLabel()
        self.label2.setText(
            str(self.total2 // 60) + ':' + str((self.total2 % 60) // 10) +
            str(self.total2 % 10))
        self.pe2 = QPalette()
        self.pe2.setColor(QPalette.WindowText, Qt.black)
        self.label2.setPalette(self.pe2)
        self.label2.setAlignment(Qt.AlignCenter)
        self.label2.setFont(QFont("Roman times", 200, QFont.Bold))
        self.label2_1 = QLabel()
        self.label2_1.setText("反")
        self.label2_1.setPalette(self.pe1)
        self.label2_1.setAlignment(Qt.AlignCenter)
        self.label2_1.setFont(QFont("Roman times", 125, QFont.Bold))

        self.bt1.clicked.connect(self.startTimer)
        self.bt2.clicked.connect(self.stopTimer)
        self.bt3.clicked.connect(self.setTimer)

        hbox = QHBoxLayout()
        hbox.addStretch(3)
        hbox.addWidget(self.bt1)
        hbox.addStretch(1)
        hbox.addWidget(self.bt2)
        hbox.addStretch(1)
        hbox.addWidget(self.bt3)
        hbox.addStretch(3)

        hbox2 = QHBoxLayout()
        hbox2.addStretch(3)
        hbox2.addWidget(self.label1_1)
        hbox2.addStretch(1)
        hbox2.addWidget(self.label1)
        hbox2.addStretch(3)

        hbox3 = QHBoxLayout()
        hbox3.addStretch(3)
        hbox3.addWidget(self.label2_1)
        hbox3.addStretch(1)
        hbox3.addWidget(self.label2)
        hbox3.addStretch(3)

        vbox = QVBoxLayout()
        vbox.addStretch(1)
        vbox.addLayout(hbox2)
        vbox.addStretch(1)
        vbox.addLayout(hbox3)
        vbox.addStretch(1)
        vbox.addLayout(hbox)
        vbox.addStretch(1)

        self.setLayout(vbox)
예제 #22
0
class Window(QGraphicsScene):

    next_level = pyqtSignal(int)

    next_level2 = pyqtSignal(int)

    sound_invaderkilled = QtMultimedia.QSound(
        'assets/sounds/invaderkilled.wav')
    sound_shipexplosion = QtMultimedia.QSound(
        'assets/sounds/shipexplosion.wav')

    def __init__(self, singlemulti, level_number, parent=None):
        QGraphicsScene.__init__(self, parent)

        self.key_notifier = KeyNotifier()
        self.key_notifier.key_signal.connect(self.do_key_press)
        self.key_notifier.start()

        self.numberOfPlayer = singlemulti
        self.level_numberrr = level_number

        # Postavljanje pozadine
        self.set_background()

        #Postavljanje Glavnog igraca
        if (self.numberOfPlayer == 1):
            self.player = Player()
            self.player.setPos(400, 525)
            self.addItem(self.player)
            self.flag_playerOneDead = False

        elif (self.numberOfPlayer == 2):
            self.player = Player()
            self.player.setPos(400, 525)
            self.addItem(self.player)
            self.flag_playerOneDead = False

            self.player2 = Player2()
            self.player2.setPos(100, 525)
            self.addItem(self.player2)
            self.flag_playerTwoDead = False

        # Postavljanje neprijatelja
        self.enemies = []
        self.enemies.append(Enemy())
        self.enemies[0].setPos(100, 50)

        for i in range(0, 55):
            self.enemies.append(Enemy())
            if i == 11:
                self.enemies[i].setPos(self.enemies[0].x(),
                                       self.enemies[0].y() + 60)
                continue
            if i == 22:
                self.enemies[i].setPos(self.enemies[11].x(),
                                       self.enemies[11].y() + 60)
                continue
            if i == 33:
                self.enemies[i].setPos(self.enemies[22].x(),
                                       self.enemies[22].y() + 60)
                continue
            if i == 44:
                self.enemies[i].setPos(self.enemies[33].x(),
                                       self.enemies[33].y() + 60)
                continue
            self.enemies[i].setPos(self.enemies[i - 1].x() + 60,
                                   self.enemies[i - 1].y())

        for i in range(0, 55):
            self.addItem(self.enemies[i])

        # Pomeranje neprijatelja
        self.moveEnemy = MoveEnemy()
        self.moveEnemy.calc_done.connect(self.move_enemy)
        self.moveEnemy.start()

        # Pucanje igraca
        self.shootLaser = PlayerShoot()
        self.shootLaser.calc_done.connect(self.move_laser_up)
        self.shootLaser.collision_detected.connect(
            self.player_laser_enemy_collide)
        self.shootLaser.start()
        self.playerOneCanShoot = True
        self.playerTwoCanShoot = True

        # Pucanje protivnika
        self.enemyShoot = EnemyShoot()
        self.enemyShoot.can_shoot.connect(self.enemy_shoot_laser)
        self.enemyShoot.move_down.connect(self.move_enemy_laser)
        self.enemyShoot.collision_detected.connect(self.enemy_hit_player)
        self.enemyShoot.collision_detected_with_shield.connect(
            self.enemy_laser_shield_collide)
        #self.enemyShoot.next_level.connect(self.next_level)
        if self.numberOfPlayer == 1:
            self.enemyShoot.add_player(self.player)
        else:
            self.enemyShoot.add_player(self.player)
            self.enemyShoot.add_player(self.player2)
        self.enemyShoot.start()

        for i in range(0, 55):
            self.moveEnemy.add_enemy(self.enemies[i])
            self.shootLaser.add_enemy(self.enemies[i])
            self.enemyShoot.add_enemy(self.enemies[i])

        #Dodavanje stitova
        self.shields = []
        self.shields.append(Shield())
        self.shields[0].setPos(50, 350)
        self.shields.append(Shield())
        self.shields[1].setPos(375, 350)
        self.shields.append(Shield())
        self.shields[2].setPos(700, 350)

        for i in range(0, 3):
            self.addItem(self.shields[i])
            self.enemyShoot.add_shield(self.shields[i])

        self.view = QGraphicsView(self)
        self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.show()
        self.view.setFixedSize(WINDOW_WIDTH, WINDOW_HEIGHT)
        self.setSceneRect(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT)

        self.initUI(self.numberOfPlayer, self.level_numberrr)

    def move_enemy(self, enemyPixMap: QGraphicsPixmapItem, newX, newY):
        enemyPixMap.setPos(newX, newY)

    def remove_enemy_label(self, enemy: QGraphicsPixmapItem):
        if enemy in self.enemies:
            self.enemies.remove(enemy)

    def remove_laser(self, laserLabel: QGraphicsPixmapItem):
        if laser in self.enemies:
            self.enemies.remove(enemy)
            self.enemyShoot.remove_enemy(
                enemy)  #Da ne pucaju kad su vec pogodjeni

    def keyPressEvent(self, event):
        self.key_notifier.add_key(event.key())

    def keyReleaseEvent(self, event):
        if (self.key_notifier.exists_key(event.key())):
            self.key_notifier.rem_key(event.key())

    # POKUSAJ PROCESA

    def do_key_press(self, key):
        try:
            # proc = multiprocessing.Process(target = self.__update_position__, args = [key])
            # proc.start()
            # proc.join()

            #(Process(target=__update_position__, args=[key])).start()

            self.__update_position__(key)
        except Exception as e:
            print('Exception: {}'.format(str(e)))

    def set_background(self):
        loadedPicture = QImage('assets/background.png')
        brushBackground = QBrush(loadedPicture)
        self.setBackgroundBrush(brushBackground)

    def player_laser_enemy_collide(self, enemyLabel: QGraphicsPixmapItem,
                                   laserLabel: QGraphicsPixmapItem):
        try:
            self.sound_invaderkilled.play()
            enemyLabel.hide()
            laserLabel.hide()
            self.shootLaser.remove_laser(laserLabel)
            self.shootLaser.remove_enemy(enemyLabel)
            self.remove_enemy_label(enemyLabel)
            self.enemyShoot.remove_enemy(enemyLabel)
            self.moveEnemy.remove_enemy(enemyLabel)

            if len(self.enemies) == 1:
                if (self.numberOfPlayer == 1):
                    # Gasenje threadova
                    self.shootLaser.die()
                    self.moveEnemy.die()
                    self.enemyShoot.die()
                    # Unistavanje postojecih projektila na screenu
                    for laser in self.shootLaser.laserLabels:
                        self.removeItem(laser)
                    for laser in self.enemyShoot.lasers:
                        self.removeItem(laser)
                    for shield in self.shields:
                        self.removeItem(shield)
                    self.shields.clear()

                    # Povecavanje nivoa za jedan i restart neprijatelja update gui
                    self.level_numberrr += 1
                    self.level_advance()
                    self.Widget.setZValue(50)

                elif (self.numberOfPlayer == 2):
                    # Gasenje threadova
                    self.shootLaser.die()
                    self.moveEnemy.die()
                    self.enemyShoot.die()
                    # Unistavanje postojecih projektila na screenu
                    for laser in self.shootLaser.laserLabels:
                        self.removeItem(laser)
                    for laser in self.enemyShoot.lasers:
                        self.removeItem(laser)
                    for shield in self.shields:
                        self.removeItem(shield)
                    self.shields.clear()

                    # Povecavanje nivoa za jedan i restart neprijatelja update gui
                    self.level_numberrr += 1
                    self.level_advance()
                    self.Widget.setZValue(50)

        except Exception as e:
            print(
                'Exception in Main_Thread/player_laser_enemy_collide method: ',
                str(e))

    def enemy_laser_shield_collide(self, laserLabel: QGraphicsPixmapItem,
                                   shieldLabel: QGraphicsPixmapItem):
        try:
            self.sound_shipexplosion.play()
            self.enemyShoot.remove_laser(laserLabel)
            laserLabel.hide()

            for shield in self.shields:
                if shield == shieldLabel:
                    shield.makeDamage()
                    if shield.health <= 0:
                        self.enemyShoot.remove_shield(shield)
                        self.shields.remove(shield)
                    shield.update_shield(shield)

        except Exception as e:
            print(str(e))

    def player_shoot_laser(self, laserLabel: QGraphicsPixmapItem, startX,
                           startY):
        laserLabel.setPos(startX + PLAYER_BULLET_X_OFFSETS[0],
                          startY - PLAYER_BULLET_Y)
        self.addItem(laserLabel)
        self.shootLaser.add_laser(laserLabel)

    def move_laser_up(self, laserLabel: QGraphicsPixmapItem, newX, newY):
        if newY > 0:
            laserLabel.setPos(newX, newY)
        else:
            laserLabel.hide()
            self.shootLaser.remove_laser(laserLabel)

    def enemy_shoot_laser(self, startX, startY):
        enemyLaserLabel = BulletEnemy()
        enemyLaserLabel.setPos(startX, startY)
        self.addItem(enemyLaserLabel)

        # dodamo laser da moze da se krece ka dole
        self.enemyShoot.add_laser(enemyLaserLabel)

    def move_enemy_laser(self, enemyLaser: QGraphicsPixmapItem, newX, newY):
        if newY < WINDOW_HEIGHT - 50:
            enemyLaser.setPos(newX, newY)
        else:
            enemyLaser.hide()
            self.enemyShoot.remove_laser(enemyLaser)

    def enemy_hit_player(self, laserLabel: QGraphicsPixmapItem,
                         playerLabel: QGraphicsPixmapItem):
        self.sound_shipexplosion.play()
        laserLabel.hide()

        if self.player == playerLabel:
            self.player.loseLife()
        if self.numberOfPlayer == 2:
            if self.player2 == playerLabel:
                self.player2.loseLife()

        self.update_GUI_lives(self.numberOfPlayer)

    def __update_position__(self, key):

        if self.player:
            playerPos = self.player.pos()

            dx = 0

            # Closing program
            if key == Qt.Key_Escape:
                self.shootLaser.die()
                self.moveEnemy.die()
                self.enemyShoot.die()
                self.key_notifier.die()
                self.view.hide()

            if playerPos.x() + dx <= 0:
                if key == Qt.Key_D:
                    dx += PLAYER_SPEED
            elif playerPos.x() + dx >= 845:
                if key == Qt.Key_A:
                    dx -= PLAYER_SPEED
            else:
                if key == Qt.Key_D:
                    dx += PLAYER_SPEED
                if key == Qt.Key_A:
                    dx -= PLAYER_SPEED
            self.player.setPos(playerPos.x() + dx, playerPos.y())

            if key == Qt.Key_Space:
                if self.playerOneCanShoot:
                    laserLabel = Bullet()
                    self.player_shoot_laser(laserLabel, playerPos.x(),
                                            playerPos.y())

        ## player 2 ##
        if self.numberOfPlayer == 2 and self.player2:
            playerPos2 = self.player2.pos()
            dx2 = 0

            if playerPos2.x() + dx2 <= 0:
                if key == Qt.Key_Right:
                    dx2 += PLAYER_SPEED
            elif playerPos2.x() + dx2 >= 845:
                if key == Qt.Key_Left:
                    dx2 -= PLAYER_SPEED
            else:
                if key == Qt.Key_Right:
                    dx2 += PLAYER_SPEED
                if key == Qt.Key_Left:
                    dx2 -= PLAYER_SPEED
            self.player2.setPos(playerPos2.x() + dx2, playerPos2.y())

            if key == Qt.Key_Control and self.player2:
                if self.playerTwoCanShoot:
                    laserLabel2 = Bullet()
                    self.player_shoot_laser(laserLabel2, playerPos2.x(),
                                            playerPos2.y())

    def initUI(self, numberOfPlayer, level_number):
        self.horizontalLayoutWidget = QWidget()
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(13, 10, 871, 10))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")

        self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setSpacing(230)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.horizontalLayout.setAlignment(Qt.AlignLeft)

        #Zivoti prvog igraca
        self.lab_lives1 = QtWidgets.QLabel(self.horizontalLayoutWidget)
        self.lab_lives1.setEnabled(True)
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(QFont.Bold)
        self.lab_lives1.setFont(font)
        self.lab_lives1.setObjectName("lab_lives1")
        self.lab_lives1.setStyleSheet("color:yellow")
        self.horizontalLayout.addWidget(self.lab_lives1)

        self.lab_lives1.setText("Player1 Lives: 3")

        #Level
        self.lab_level = QtWidgets.QLabel(self.horizontalLayoutWidget)
        self.lab_level.setEnabled(True)
        font = QtGui.QFont()
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.lab_level.setFont(font)
        self.lab_level.setObjectName("lab_level")
        self.lab_level.setStyleSheet("color:yellow")
        self.horizontalLayout.addWidget(self.lab_level)

        self.lab_level.setText("Level: " + str(level_number))

        #Zivoti drugog igraca
        if self.numberOfPlayer == 2:
            self.lab_lives2 = QtWidgets.QLabel(self.horizontalLayoutWidget)
            self.lab_lives2.setEnabled(True)
            font = QtGui.QFont()
            font.setPointSize(16)
            font.setBold(True)
            font.setWeight(75)
            self.lab_lives2.setFont(font)
            self.lab_lives2.setObjectName("lab_lives2")
            self.lab_lives2.setStyleSheet("color:yellow")
            self.horizontalLayout.addWidget(self.lab_lives2)

            self.lab_lives2.setText("Player2 Lives: 3")

        self.horizontalLayoutWidget.show()
        self.horizontalLayoutWidget.setAttribute(
            QtCore.Qt.WA_TranslucentBackground)

        self.Widget = self.addWidget(self.horizontalLayoutWidget)

    def update_GUI_lives(self, playerNo):
        #if playerNo==1:
        lives = self.player.lives

        if lives == 3:
            self.lab_lives1Text = "Player1 Lives: 3"
            self.lab_lives1.setText(self.lab_lives1Text)
        elif lives == 2:
            self.lab_lives1Text = "Player1 Lives: 2"
            self.lab_lives1.setText(self.lab_lives1Text)
        elif lives == 1:
            self.lab_lives1Text = "Player1 Lives: 1"
            self.lab_lives1.setText(self.lab_lives1Text)
        elif lives <= 0:
            self.lab_lives1Text = "Player1 Lives: 0"
            self.lab_lives1.setText(self.lab_lives1Text)
            self.flag_playerOneDead = True
            self.player.hide()
            self.playerOneCanShoot = False
            #self.player = None

        if playerNo == 2:
            lives = self.player2.lives

            if lives == 3:
                self.lab_lives2Text = "Player2 Lives: 3"
                self.lab_lives2.setText(self.lab_lives2Text)
            elif lives == 2:
                self.lab_lives2Text = "Player2 Lives: 2"
                self.lab_lives2.setText(self.lab_lives2Text)
            elif lives == 1:
                self.lab_lives2Text = "Player2 Lives: 1"
                self.lab_lives2.setText(self.lab_lives2Text)
            elif lives <= 0:
                self.lab_lives2Text = "Player2 Lives: 0"
                self.lab_lives2.setText(self.lab_lives2Text)
                self.flag_playerTwoDead = True
                self.player2.hide()
                self.playerTwoCanShoot = False
                #self.player2 = None

        self.lab_levelText = "Level: {}".format(self.level_numberrr)
        self.lab_level.setText(self.lab_levelText)

        if self.numberOfPlayer == 1:
            if self.flag_playerOneDead == True:
                self.gameOver()
        elif self.numberOfPlayer == 2:
            if self.flag_playerOneDead == True and self.flag_playerTwoDead == True:
                self.gameOver()

    def gameOver(self):

        self.tempWidget = QWidget()
        self.tempWidget.setGeometry(QtCore.QRect(0, 0, 900, 600))
        self.tempWidget.setObjectName("tempWidget")

        self.horizontalLayout = QHBoxLayout(self.tempWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setSpacing(230)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.horizontalLayout.setAlignment(Qt.AlignCenter)

        #Labela game over
        self.lab_gameOver = QtWidgets.QLabel(self.tempWidget)
        self.lab_gameOver.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(60)
        font.setBold(True)
        font.setWeight(QFont.Bold)
        self.lab_gameOver.setFont(font)
        self.lab_gameOver.setObjectName("lab_gameOver")
        self.lab_gameOver.setStyleSheet(
            "color: red; background-color: transparent;")
        self.horizontalLayout.addWidget(self.lab_gameOver)
        self.lab_gameOver.setText("GAME OVER")

        self.tempWidget.setStyleSheet(
            "background-color: rgba(255,255,255,70);")

        self.Widget = self.addWidget(self.tempWidget)

        self.moveEnemy.die()
        self.shootLaser.die()
        self.enemyShoot.die()
        self.key_notifier.die()

    def level_advance(self):

        self.levelUP()
        self.player.lives = 3
        if (self.numberOfPlayer == 2):
            self.player2.lives = 3
            self.player.show()
            self.player2.show()
            self.playerOneCanShoot = True
            self.playerTwoCanShoot = True
            self.flag_playerOneDead = False
            self.flag_playerTwoDead = False

        self.update_GUI_lives(self.numberOfPlayer)

        # Postavljanje neprijatelja
        self.enemies = []
        self.enemies.append(Enemy())
        self.enemies[0].setPos(100, 50)

        for i in range(0, 55):
            self.enemies.append(Enemy())
            if i == 11:
                self.enemies[i].setPos(self.enemies[0].x(),
                                       self.enemies[0].y() + 60)
                continue
            if i == 22:
                self.enemies[i].setPos(self.enemies[11].x(),
                                       self.enemies[11].y() + 60)
                continue
            if i == 33:
                self.enemies[i].setPos(self.enemies[22].x(),
                                       self.enemies[22].y() + 60)
                continue
            if i == 44:
                self.enemies[i].setPos(self.enemies[33].x(),
                                       self.enemies[33].y() + 60)
                continue
            self.enemies[i].setPos(self.enemies[i - 1].x() + 60,
                                   self.enemies[i - 1].y())

        for i in range(0, 55):
            self.addItem(self.enemies[i])

        self.moveEnemy = MoveEnemy()
        self.moveEnemy.calc_done.connect(self.move_enemy)
        self.moveEnemy.start()

        self.enemyShoot = EnemyShoot()
        self.enemyShoot.can_shoot.connect(self.enemy_shoot_laser)
        self.enemyShoot.move_down.connect(self.move_enemy_laser)
        self.enemyShoot.collision_detected.connect(self.enemy_hit_player)
        self.enemyShoot.collision_detected_with_shield.connect(
            self.enemy_laser_shield_collide)
        # Ubrzavanje lasera igraca i enemya
        self.enemyShoot.enemyLaserSpeed += self.level_numberrr
        self.moveEnemy.enemyMoveSpeed += self.level_numberrr

        #print('Enemy move speed: {}'.format(self.moveEnemy.enemyMoveSpeed))
        #print('Enemy laser speed: {}'.format(self.enemyShoot.enemyLaserSpeed))

        if self.numberOfPlayer == 1:
            self.enemyShoot.add_player(self.player)
        else:
            # PROVERA AKO JE MRTAV NE IGRA VISE / A USTVARI IGRA PROCITANO IZ PROJEKTA, NEMA VEZE
            if self.player != None:
                self.enemyShoot.add_player(self.player)
            if self.player2 != None:
                self.enemyShoot.add_player(self.player2)
        self.enemyShoot.start()

        self.shootLaser = PlayerShoot()
        self.shootLaser.calc_done.connect(self.move_laser_up)
        self.shootLaser.collision_detected.connect(
            self.player_laser_enemy_collide)
        self.shootLaser.start()

        for i in range(0, 55):
            self.moveEnemy.add_enemy(self.enemies[i])
            self.shootLaser.add_enemy(self.enemies[i])
            self.enemyShoot.add_enemy(self.enemies[i])

        #Dodavanje stitova
        self.shields = []
        self.shields.append(Shield())
        self.shields[0].setPos(50, 350)
        self.shields.append(Shield())
        self.shields[1].setPos(375, 350)
        self.shields.append(Shield())
        self.shields[2].setPos(700, 350)

        for i in range(0, 3):
            self.addItem(self.shields[i])
            self.enemyShoot.add_shield(self.shields[i])

    def levelUP(self):

        self.tempWidget = QWidget()
        self.tempWidget.setGeometry(QtCore.QRect(0, 0, 900, 600))
        self.tempWidget.setObjectName("tempWidget")

        self.horizontalLayout = QHBoxLayout(self.tempWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setSpacing(230)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.horizontalLayout.setAlignment(Qt.AlignCenter)

        #Labela next level
        self.lab_nextLevel = QtWidgets.QLabel(self.tempWidget)
        self.lab_nextLevel.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(30)
        font.setBold(True)
        font.setWeight(QFont.Bold)
        self.lab_nextLevel.setFont(font)
        self.lab_nextLevel.setObjectName("lab_nextLevel")
        self.lab_nextLevel.setStyleSheet(
            "color: GREEN; background-color: transparent;")
        self.horizontalLayout.addWidget(self.lab_nextLevel)
        self.lab_nextLevel.setText("NEXT LEVEL")

        self.tempWidget.setStyleSheet("background-color: rgba(255,255,255,0)")
        self.WidgetLEVEL = self.addWidget(self.tempWidget)

        self.WidgetLEVEL.setZValue(20)

        self.timer = QTimer()
        self.timer.timeout.connect(self.levelUPdelete)
        self.timer.start(2000)

    def levelUPdelete(self):
        self.WidgetLEVEL.hide()
예제 #23
0
    def click(self, key: str="", event: str=""):
        # Pondo som a tocar quando usuário estiver a cliquar nos botões de jogo.
        if key in ["1","2","3","4","5","6","7","8","9"]:
            self.son = QtMultimedia.QSound("click.wav")
            self.son.play()
        if event == "restart":
            self.pushButton_1.setDisabled(False)
            self.pushButton_1.setStyleSheet(self.estado[2])
            self.pushButton_2.setDisabled(False)
            self.pushButton_2.setStyleSheet(self.estado[2])
            self.pushButton_3.setDisabled(False)
            self.pushButton_3.setStyleSheet(self.estado[2])
            self.pushButton_4.setDisabled(False)
            self.pushButton_4.setStyleSheet(self.estado[2])
            self.pushButton_5.setDisabled(False)
            self.pushButton_5.setStyleSheet(self.estado[2])
            self.pushButton_6.setDisabled(False)
            self.pushButton_6.setStyleSheet(self.estado[2])
            self.pushButton_7.setDisabled(False)
            self.pushButton_7.setStyleSheet(self.estado[2])
            self.pushButton_8.setDisabled(False)
            self.pushButton_8.setStyleSheet(self.estado[2])
            self.pushButton_9.setDisabled(False)
            self.pushButton_9.setStyleSheet(self.estado[2])

            # Essas são as variáveis que controlam o jogo.
            self.place = [2, 2, 2, 2, 2, 2, 2, 2, 2]
            self.gamer = 2
            self.numero = 2
            self.label.setText("")
            self.game_finish = False

            if key == "VS":
                    if self.vs == False:
                        self.vs_button.setStyleSheet(self.estado[4])
                        self.vs = True
                    else:
                        self.vs_button.setStyleSheet(self.estado[3])
                        self.vs = False
                        
        
        elif key == "1":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_1.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_1.setStyleSheet(self.estado[1])
                    self.numero = 1

                else:
                    self.pushButton_1.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_1.setDisabled(True)
            self.place[0] = self.numero

        elif key == "2":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_2.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_2.setStyleSheet(self.estado[1])
                    self.numero = 1
                    
                else:
                    self.pushButton_2.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_2.setDisabled(True)
            self.place[1] = self.numero
        
        elif key == "3":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_3.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_3.setStyleSheet(self.estado[1])
                    self.numero = 1

                else:
                    self.pushButton_3.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_3.setDisabled(True)
            self.place[2] = self.numero

        elif key == "4":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_4.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_4.setStyleSheet(self.estado[1])
                    self.numero = 1

                else:
                    self.pushButton_4.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_4.setDisabled(True)
            self.place[3] = self.numero   

        elif key == "5":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_5.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_5.setStyleSheet(self.estado[1])
                    self.numero = 1

                else:
                    self.pushButton_5.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_5.setDisabled(True) 
            self.place[4] = self.numero 

        elif key == "6":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_6.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_6.setStyleSheet(self.estado[1])
                    self.numero = 1

                else:
                    self.pushButton_6.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_6.setDisabled(True)
            self.place[5] = self.numero

        elif key == "7":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_7.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_7.setStyleSheet(self.estado[1])
                    self.numero = 1
                    
                else:
                    self.pushButton_7.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_7.setDisabled(True)
            self.place[6] = self.numero

        elif key == "8":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_8.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero

            else: 
                if self.numero == 0:
                    self.pushButton_8.setStyleSheet(self.estado[1])
                    self.numero = 1

                else:
                    self.pushButton_8.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_8.setDisabled(True)  
            self.place[7] = self.numero

        elif key == "9":
            if self.numero == 2:
                self.numero = randint(0, 1)
                self.pushButton_9.setStyleSheet(self.estado[self.numero])
                self.gamer = self.numero
                
            else: 
                if self.numero == 0:
                    self.pushButton_9.setStyleSheet(self.estado[1])
                    self.numero = 1
                else:
                    self.pushButton_9.setStyleSheet(self.estado[0])
                    self.numero = 0

            self.pushButton_9.setDisabled(True)
            self.place[8] = self.numero

        self.verification()
        
        if self.vs == True:
            self.goo = True
            lista = []
            for pos, c in enumerate(self.place):
                if c == 2:
                    lista.append(pos)
            if self.game_finish == False:
                if self.gamer == 0 and len(lista) > 1:
                    if self.goo == True and len(lista) > 1:
                        if self.place[0] == 2 and self.goo == True:
                            if 2 != self.place[4] == self.place[8] == 1 and self.place[0] == 2:
                                self.case1(num=1)
                            elif 2 != self.place[1] == self.place[2] == 1 and self.place[0] == 2:
                                self.case1(num=1)
                            elif 2 != self.place[3] == self.place[6] == 1 and self.place[0] == 2:
                                self.case1(num=1)
                    
                        if self.place[1] == 2 and self.goo == True:
                            if 2 != self.place[0] == self.place[2] == 1 and self.place[1] == 2:
                                self.case2(num=1)
                            elif 2 != self.place[4] == self.place[7] == 1 and self.place[1] == 2:
                                self.case2(num=1)

                        if self.place[2] == 2 and self.goo == True:
                            if 2 != self.place[0] == self.place[1] == 1 and self.place[2] == 2:
                                self.case3(num=1)
                            elif 2 != self.place[4] == self.place[6] == 1 and self.place[2] == 2:
                                self.case3(num=1)
                            elif 2 != self.place[5] == self.place[8] == 1 and self.place[2] == 2:
                                self.case3(num=1)
                        
                        if self.place[3] == 2 and self.goo == True:
                            if 2 != self.place[4] == self.place[5] == 1 and self.place[3] == 2:
                                self.case4(num=1)
                            elif 2 != self.place[0] == self.place[6] == 1 and self.place[5] == 2:
                                self.case4(num=1)
                        
                        if self.place[4] == 2 and self.goo == True:
                            if 2 != self.place[3] == self.place[5] == 1 and self.place[4] == 2:
                                self.case5(num=1)
                            elif 2 != self.place[0] == self.place[8] == 1 and self.place[4] == 2:
                                self.case5(num=1)
                            elif 2 != self.place[1] == self.place[7] == 1 and self.place[4] == 2:
                                self.case5(num=1)
                            elif 2 != self.place[2] == self.place[6] == 1 and self.place[4] == 2:
                                self.case5(num=1)

                        if self.place[5] == 2 and self.goo == True:
                            if 2 != self.place[3] == self.place[4] == 1 and self.place[5] == 2:
                                self.case6(num=1)
                            elif 2 != self.place[2] == self.place[8] == 1 and self.place[5] == 2:
                                self.case6(num=1)
                        
                        if self.place[6] == 2 and self.goo == True:
                            if 2 != self.place[4] == self.place[2] == 1 and self.place[6] == 2:
                                self.case7(num=1)
                            elif 2 != self.place[0] == self.place[3] == 1 and self.place[6] == 2:
                                self.case7(num=1)
                            elif 2 != self.place[7] == self.place[8] == 1 and self.place[6] == 2:
                                self.case7(num=1)
                        
                        if self.place[7] == 2:
                            if 2 != self.place[4] == self.place[1] == 1 and self.place[7] == 2:
                                self.case8(num=1)
                            elif 2 != self.place[6] == self.place[8] == 1 and self.place[7] == 2:
                                self.case8(num=1)
                        
                        if self.place[8] == 2 and self.goo == True:
                            if 2 != self.place[5] == self.place[2] == 1 and self.place[8] == 2:
                                self.case9(num=1)
                            elif 2 != self.place[6] == self.place[7] == 1 and self.place[8] == 2:
                                self.case9(num=1)
                            elif 2 != self.place[0] == self.place[4] == 1 and self.place[8] == 2:
                                self.case9(num=1)
                    # ----------
                    if self.place[0] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[8] != 1 and self.place[0] == 2:
                            self.case1(num=1)
                        elif 2 != self.place[1] == self.place[2] != 1 and self.place[0] == 2:
                            self.case1(num=1)
                        elif 2 != self.place[3] == self.place[6] != 1 and self.place[0] == 2:
                            self.case1(num=1)
                    
                    if self.place[1] == 2 and self.goo == True:
                        if 2 != self.place[0] == self.place[2] != 1 and self.place[1] == 2:
                            self.case2(num=1)
                        elif 2 != self.place[4] == self.place[7] != 1 and self.place[1] == 2:
                            self.case2(num=1)

                    if self.place[2] == 2 and self.goo == True:
                        if 2 != self.place[0] == self.place[1] != 1 and self.place[2] == 2:
                            self.case3(num=1)
                        elif 2 != self.place[4] == self.place[6] != 1 and self.place[2] == 2:
                            self.case3(num=1)
                        elif 2 != self.place[5] == self.place[8] != 1 and self.place[2] == 2:
                            self.case3(num=1)
                    
                    if self.place[3] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[5] != 1 and self.place[3] == 2:
                            self.case4(num=1)
                        if 2 != self.place[0] == self.place[6] != 1 and self.place[5] == 2:
                            self.case4(num=1)
                    
                    if self.place[4] == 2 and self.goo == True:
                        if 2 != self.place[3] == self.place[5] != 1 and self.place[4] == 2:
                            self.case5(num=1)
                        elif 2 != self.place[0] == self.place[8] != 1 and self.place[4] == 2:
                            self.case5(num=1)
                        elif 2 != self.place[1] == self.place[7] != 1 and self.place[4] == 2:
                            self.case5(num=1)
                        elif 2 != self.place[2] == self.place[6] != 1 and self.place[4] == 2:
                            self.case5(num=1)

                    if self.place[5] == 2 and self.goo == True:
                        if 2 != self.place[3] == self.place[4] != 1 and self.place[5] == 2:
                            self.case6(num=1)
                        elif 2 != self.place[2] == self.place[8] != 1 and self.place[5] == 2:
                            self.case6(num=1)
                    
                    if self.place[6] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[2] != 1 and self.place[6] == 2:
                            self.case7(num=1)
                        elif 2 != self.place[0] == self.place[3] != 1 and self.place[6] == 2:
                            self.case7(num=1)
                        elif 2 != self.place[7] == self.place[8] != 1 and self.place[6] == 2:
                            self.case7(num=1)
                    
                    if self.place[7] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[1] != 1 and self.place[7] == 2:
                            self.case8(num=1)
                        elif 2 != self.place[6] == self.place[8] != 1 and self.place[7] == 2:
                            self.case8(num=1)
                    
                    if self.place[8] == 2 and self.goo == True:
                        if 2 != self.place[5] == self.place[2] != 1 and self.place[8] == 2:
                            self.case9(num=1)
                        elif 2 != self.place[6] == self.place[7] != 1 and self.place[8] == 2:
                            self.case9(num=1)
                        elif 2 != self.place[0] == self.place[4] != 1 and self.place[8] == 2:
                            self.case9(num=1)

                    if self.goo == True and len(lista) > 1:
                        lista = []
                        print(self.place)
                        for pos, c in enumerate(self.place):
                            if c == 2:
                                lista.append(pos)
                        cg = choice(lista)
                        print(cg)
                        if cg == 0:
                            self.case1(num=1)
                        elif cg == 1:
                            self.case2(num=1)
                        elif cg == 2:
                            self.case3(num=1)
                        elif cg == 3:
                            self.case4(num=1)
                        elif cg == 4:
                            self.case5(num=1)
                        elif cg == 5:
                            self.case6(num=1)
                        elif cg == 6:
                            self.case7(num=1)
                        elif cg == 7:
                            self.case8(num=1)
                        elif cg == 8:
                            self.case9(num=1)
                        else:
                            pass
                        

                elif self.gamer == 1 and len(lista) > 1:
                    if self.goo == True and len(lista) > 1:
                        if self.place[0] == 2 and self.goo == True:
                            if 2 != self.place[4] == self.place[8] == 0 and self.place[0] == 2:
                                self.case1(num=0)
                            elif 2 != self.place[1] == self.place[2] == 0 and self.place[0] == 2:
                                self.case1(num=0)
                            elif 2 != self.place[3] == self.place[6] == 0 and self.place[0] == 2:
                                self.case1(num=0)

                        if self.place[1] == 2 and self.goo == True:
                            if 2 != self.place[0] == self.place[2] == 0 and self.place[1] == 2:
                                self.case2(num=0)
                            elif 2 != self.place[4] == self.place[7] == 0 and self.place[1] == 2:
                                self.case2(num=0)

                        if self.place[2] == 2 and self.goo == True:
                            if 2 != self.place[0] == self.place[1] == 0 and self.place[2] == 2:
                                self.case3(num=0)
                            elif 2 != self.place[4] == self.place[6] == 0 and self.place[2] == 2:
                                self.case3(num=0)
                            elif 2 != self.place[5] == self.place[8] == 0 and self.place[2] == 2:
                                self.case3(num=0)

                        if self.place[3] == 2 and self.goo == True:
                            if 2 != self.place[4] == self.place[5] == 0 and self.place[3] == 2:
                                self.case4(num=0)
                            elif 2 != self.place[0] == self.place[6] == 0 and self.place[5] == 2:
                                self.case4(num=0)

                        if self.place[4] == 2 and self.goo == True:
                            if 2 != self.place[3] == self.place[5] == 0 and self.place[4] == 2:
                                self.case5(num=0)
                            elif 2 != self.place[0] == self.place[8] == 0 and self.place[4] == 2:
                                self.case5(num=0)
                            elif 2 != self.place[1] == self.place[7] == 0 and self.place[4] == 2:
                                self.case5(num=0)
                            elif 2 != self.place[2] == self.place[6] == 0 and self.place[4] == 2:
                                self.case5(num=0)
                        
                        if self.place[5] == 2 and self.goo == True:
                            if 2 != self.place[3] == self.place[4] == 0 and self.place[5] == 2:
                                self.case6(num=0)
                            elif 2 != self.place[2] == self.place[8] == 0 and self.place[5] == 2:
                                self.case6(num=0)
                        
                        if self.place[6] == 2 and self.goo == True:
                            if 2 != self.place[4] == self.place[2] == 0 and self.place[6] == 2:
                                self.case7(num=0)
                            elif 2 != self.place[0] == self.place[3] == 0 and self.place[6] == 2:
                                self.case7(num=0)
                            elif 2 != self.place[7] == self.place[8] == 0 and self.place[6] == 2:
                                self.case7(num=0)
                        
                        if self.place[7] == 2 and self.goo == True:
                            if 2 != self.place[4] == self.place[1] == 0 and self.place[7] == 2:
                                self.case8(num=0)
                            elif 2 != self.place[6] == self.place[8] == 0 and self.place[7] == 2:
                                self.case8(num=0)
                        
                        if self.place[8] == 2 and self.goo == True:
                            if 2 != self.place[5] == self.place[2] == 0 and self.place[8] == 2:
                                self.case9(num=0)
                            elif 2 != self.place[6] == self.place[7] == 0 and self.place[8] == 2:
                                self.case9(num=0)
                            elif 2 != self.place[0] == self.place[4] == 0 and self.place[8] == 2:
                                self.case9(num=0)
                    # --------------
                    if self.place[0] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[8] != 0 and self.place[0] == 2:
                            self.case1(num=0)
                        elif 2 != self.place[1] == self.place[2] != 0 and self.place[0] == 2:
                            self.case1(num=0)
                        elif 2 != self.place[3] == self.place[6] != 0 and self.place[0] == 2:
                            self.case1(num=0)
                    else:
                        pass
                    if self.place[1] == 2 and self.goo == True:
                        if 2 != self.place[0] == self.place[2] != 0 and self.place[1] == 2:
                            self.case2(num=0)
                        elif 2 != self.place[4] == self.place[7] != 0 and self.place[1] == 2:
                            self.case2(num=0)
                    else:
                        pass

                    if self.place[2] == 2 and self.goo == True:
                        if 2 != self.place[0] == self.place[1] != 0 and self.place[2] == 2:
                            self.case3(num=0)
                        elif 2 != self.place[4] == self.place[6] != 0 and self.place[2] == 2:
                            self.case3(num=0)
                        elif 2 != self.place[5] == self.place[8] != 0 and self.place[2] == 2:
                            self.case3(num=0)
                    
                    if self.place[3] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[5] != 0 and self.place[3] == 2:
                            self.case4(num=0)
                        elif 2 != self.place[0] == self.place[6] != 0 and self.place[5] == 2:
                            self.case4(num=0)

                    
                    if self.place[4] == 2 and self.goo == True:
                        if 2 != self.place[3] == self.place[5] != 0 and self.place[4] == 2:
                            self.case5(num=0)
                        elif 2 != self.place[0] == self.place[8] != 0 and self.place[4] == 2:
                            self.case5(num=0)
                        elif 2 != self.place[1] == self.place[7] != 0 and self.place[4] == 2:
                            self.case5(num=0)
                        elif 2 != self.place[2] == self.place[6] != 0 and self.place[4] == 2:
                            self.case5(num=0)

                    if self.place[5] == 2 and self.goo == True:
                        if 2 != self.place[3] == self.place[4] != 0 and self.place[5] == 2:
                            self.case6(num=0)
                        elif 2 != self.place[2] == self.place[8] != 0 and self.place[5] == 2:
                            self.case6(num=0)
                    
                    if self.place[6] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[2] != 0 and self.place[6] == 2:
                            self.case7(num=0)
                        elif 2 != self.place[0] == self.place[3] != 0 and self.place[6] == 2:
                            self.case7(num=0)
                        elif 2 != self.place[7] == self.place[8] != 0 and self.place[6] == 2:
                            self.case7(num=0)
                    
                    if self.place[7] == 2 and self.goo == True:
                        if 2 != self.place[4] == self.place[1] != 0 and self.place[7] == 2:
                            self.case8(num=0)
                        elif 2 != self.place[6] == self.place[8] != 0 and self.place[7] == 2:
                            self.case8(num=0)
                    
                    if self.place[8] == 2 and self.goo == True:
                        if 2 != self.place[5] == self.place[2] != 0 and self.place[8] == 2:
                            self.case9(num=0)
                        elif 2 != self.place[6] == self.place[7] != 0 and self.place[8] == 2:
                            self.case9(num=0)
                        elif 2 != self.place[0] == self.place[4] != 0 and self.place[8] == 2:
                            self.case9(num=0)

                    if self.goo == True and len(lista) > 1:
                        lista = []
                        for pos, c in enumerate(self.place):
                            if c == 2:
                                lista.append(pos)
                        cg = choice(lista)
                        print(cg)
                        if cg == 0:
                            self.case1(num=0)
                        elif cg == 1:
                            self.case2(num=0)
                        elif cg == 2:
                            self.case3(num=0)
                        elif cg == 3:
                            self.case4(num=0)
                        elif cg == 4:
                            self.case5(num=0)
                        elif cg == 5:
                            self.case6(num=0)
                        elif cg == 6:
                            self.case7(num=0)
                        elif cg == 7:
                            self.case8(num=0)
                        elif cg == 8:
                            self.case9(num=0)
                        else:
                            pass

            # Esta funcão serve para verificar se o computador ganho ou não.    
            self.verification()

        else:
            pass
예제 #24
0
파일: PokerTable.py 프로젝트: torpoker/app
def beep_sound():
    if MULTIMEDIA_PACKAGE:
        sound_obj = QtMultimedia.QSound(BEEP_SOUND_FILE)
        sound_obj.play(BEEP_SOUND_FILE)
예제 #25
0
 def setOffTheAlarm(self):
     self.alarm = QtMultimedia.QSound("audio/mainAlarm.wav")
     self.alarm.play()
예제 #26
0
    def __init__(self):
        super(DatasetGui, self).__init__()
        self.setWindowTitle("Pointing Gesture Recognition - Dataset recording")

        # Retrieve all settings
        self.settings = Settings()

        # Load sounds
        self.countdownSound = QtMultimedia.QSound(
            self.settings.getResourceFolder() + "countdown.wav")
        self.countdownEndedSound = QtMultimedia.QSound(
            self.settings.getResourceFolder() + "countdown-ended.wav")

        # Get the context and initialise it
        self.context = Context()
        self.context.init()

        # Create the depth generator to get the depth map of the scene
        self.depth = DepthGenerator()
        self.depth.create(self.context)
        self.depth.set_resolution_preset(RES_VGA)
        self.depth.fps = 30

        # Create the image generator to get an RGB image of the scene
        self.image = ImageGenerator()
        self.image.create(self.context)
        self.image.set_resolution_preset(RES_VGA)
        self.image.fps = 30

        # Create the user generator to detect skeletons
        self.user = UserGenerator()
        self.user.create(self.context)

        # Initialise the skeleton tracking
        skeleton.init(self.user)

        # Start generating
        self.context.start_generating_all()
        print "Starting to detect users.."

        # Create a new dataset item
        self.data = Dataset()

        # Create a timer for an eventual countdown before recording the data
        self.countdownTimer = QtCore.QTimer()
        self.countdownRemaining = 10
        self.countdownTimer.setInterval(1000)
        self.countdownTimer.setSingleShot(True)
        self.countdownTimer.timeout.connect(self.recordCountdown)

        # Create a timer to eventually record data for a heat map
        self.heatmapRunning = False
        self.heatmapTimer = QtCore.QTimer()
        self.heatmapTimer.setInterval(10)
        self.heatmapTimer.setSingleShot(True)
        self.heatmapTimer.timeout.connect(self.recordHeatmap)

        # Create the global layout
        self.layout = QtWidgets.QVBoxLayout(self)

        # Create custom widgets to hold sensor's images
        self.depthImage = SensorWidget()
        self.depthImage.setGeometry(10, 10, 640, 480)

        # Add these custom widgets to the global layout
        self.layout.addWidget(self.depthImage)

        # Hold the label indicating the number of dataset taken
        self.numberLabel = QtWidgets.QLabel()
        self.updateDatasetNumberLabel()

        # Create the acquisition form elements
        self.createAcquisitionForm()

        # Register a dialog window to prompt the target position
        self.dialogWindow = DatasetDialog(self)

        # Allow to save the data when the right distance is reached
        self.recordIfReady = False

        # Create and launch a timer to update the images
        self.timerScreen = QtCore.QTimer()
        self.timerScreen.setInterval(30)
        self.timerScreen.setSingleShot(True)
        self.timerScreen.timeout.connect(self.updateImage)
        self.timerScreen.start()
예제 #27
0
    def __init__(self):

        root = QtCore.QFileInfo(__file__).absolutePath()
        bg1 = QtGui.QPixmap()
        bg1.load(root+'/graphics/background1.jpg')
        bg2 = QtGui.QPixmap()
        bg2.load(root+'/graphics/background2.jpg')
        bg3 = QtGui.QPixmap()
        bg3.load(root+'/graphics/background3.jpg')
        bg4 = QtGui.QPixmap()
        bg4.load(root+'/graphics/background4.jpg')
        bg5 = QtGui.QPixmap()
        bg5.load(root+'/graphics/background5.jpg')
        bg6 = QtGui.QPixmap()
        bg6.load(root+'/graphics/background6.jpg')
        self.allBackgrounds = [bg1, bg2, bg3, bg4, bg5, bg6]
        random.shuffle(self.allBackgrounds)

        
        self.dancers = ['Astaire','Rogers','Pavalona','Graham','Kelly','Davis','Baryshnikov','Jackson',
                        'Nijinsky','Baker','Guillem','Cortes','Nureyev','Robbins','Charisse','Pan',
                        'Loring','Fosse','Tamblyn','de Mille','Alexander','Castle','Cole','Rivera',
                        'Travolta','Elliot','Timberlake','Madonna']

        self.titles = ['', ', Jr.', ' The Third', ' IV', ' the younger', ' the elder', ' von Stapelhurst']
        
        self.maxBaseNames = len(self.dancers)
        self.maxNames = self.maxBaseNames * len(self.titles)
        random.shuffle(self.dancers)

    ##    new = [0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x]
        thoughtProvoking = [0xECD078, 0xD95B43, 0xC02942, 0x542437, 0x53777A, 0xC1C6B4, 0x9CA0AE, 0xB47E8D]
        cheerUpEmoKid = [0x556270, 0x4ECDC4, 0xC7F464, 0xFF6B6B, 0xC44D58, 0x999999, 0x336699, 0x9966CC]
        #neon = [0xF433FF, 0x3DFF33, 0xFFF533, 0x33FFF5, 0xFF333D, 0x81FF33, 0xB133FF, 0xFFBB3D, 0xC2FF3D]
        neon = [0x6FFF00, 0xFF00FF, 0xFFFF00, 0x4D4DFF, 0xFE0001, 0xFF4105, 0x993CF3]
        primaryColors = neon
        secondaryColors = thoughtProvoking + cheerUpEmoKid
        random.shuffle(primaryColors)
        random.shuffle(secondaryColors)
        self.allColors = primaryColors + secondaryColors


        e = [QtMultimedia.QSound(root+"/notes/44728__casualdave__101elow.wav"),
             QtMultimedia.QSound(root+"/notes/44729__casualdave__201a.wav"),
             QtMultimedia.QSound(root+"/notes/44730__casualdave__301d.wav"),
             QtMultimedia.QSound(root+"/notes/44731__casualdave__401g.wav"),
             QtMultimedia.QSound(root+"/notes/44733__casualdave__601e.wav"),
             QtMultimedia.QSound(root+"/notes/44733__casualdave__601e.wav")]

        d = [QtMultimedia.QSound(root+"/notes/11073__angstrom__a2.wav"),
             QtMultimedia.QSound(root+"/notes/11077__angstrom__c1.wav"),
             QtMultimedia.QSound(root+"/notes/11078__angstrom__c2.wav"),
             QtMultimedia.QSound(root+"/notes/11081__angstrom__d1.wav"),
             QtMultimedia.QSound(root+"/notes/11082__angstrom__d2.wav"),
             QtMultimedia.QSound(root+"/notes/11083__angstrom__e1.wav"),
             QtMultimedia.QSound(root+"/notes/11084__angstrom__e2.wav"),
             QtMultimedia.QSound(root+"/notes/11088__angstrom__g1.wav")]

        c = [QtMultimedia.QSound(root+"/notes/4189__realrhodessounds__d1.wav"),
             QtMultimedia.QSound(root+"/notes/4190__realrhodessounds__d2.wav"),
             QtMultimedia.QSound(root+"/notes/4191__realrhodessounds__d3.wav"),
             QtMultimedia.QSound(root+"/notes/4192__realrhodessounds__d4.wav"),
             QtMultimedia.QSound(root+"/notes/4193__realrhodessounds__d5.wav"),
             QtMultimedia.QSound(root+"/notes/4194__realrhodessounds__d6.wav")]

        b = [QtMultimedia.QSound(root+"/notes/95326__ramas26__a.wav"),
             QtMultimedia.QSound(root+"/notes/95328__ramas26__c.wav"),
             QtMultimedia.QSound(root+"/notes/95329__ramas26__d.wav"),
             QtMultimedia.QSound(root+"/notes/95330__ramas26__e.wav"),
             QtMultimedia.QSound(root+"/notes/95332__ramas26__g.wav"),
             QtMultimedia.QSound(root+"/notes/95332__ramas26__g.wav")]
        
        a = [QtMultimedia.QSound(root+"/notes/68447__pinkyfinger__piano-g.wav"),
             QtMultimedia.QSound(root+"/notes/68437__pinkyfinger__piano-a.wav"),
             QtMultimedia.QSound(root+"/notes/68441__pinkyfinger__piano-c.wav"),
             QtMultimedia.QSound(root+"/notes/68442__pinkyfinger__piano-d.wav"),
             QtMultimedia.QSound(root+"/notes/68443__pinkyfinger__piano-e.wav"),
             QtMultimedia.QSound(root+"/notes/68448__pinkyfinger__piano-g.wav")]
        self.allSounds = [a, b, c, d, e]
        random.shuffle(self.allSounds)

        self.dancerCounter = -1
        self.colorCounter = -1
        self.soundCounter = -1
        self.backgroundCounter = -1
        pass
예제 #28
0
파일: gui.py 프로젝트: JimMadge/qintervals
    def init_ui(self, workout):
        self.workout = workout

        # Size the widget
        self.resize(_WIDTH, _HEIGHT)

        self.setWindowTitle("qintervals")

        # Main grid layout
        self.grid_widget = QtWidgets.QWidget(self)
        self.grid_widget.setGeometry(
            QtCore.QRect(_BORDER_HORIZONTAL, _BORDER_VERTICAL,
                         _WIDTH - 2 * _BORDER_HORIZONTAL,
                         _HEIGHT - 2 * _BORDER_VERTICAL))
        self.grid_layout = QtWidgets.QGridLayout(self.grid_widget)
        self.grid_layout.setContentsMargins(0, 0, 0, 0)

        # Workout name
        self.label_workout_name = QtWidgets.QLabel(self.grid_widget)
        self.label_workout_name.setFont(self.font_workout_name)
        self.label_workout_name.setText(self.workout.name)
        self.grid_layout.addWidget(self.label_workout_name, 0, 0, 1, -1,
                                   QtCore.Qt.AlignCenter)

        # Interval name
        self.label_interval_name = QtWidgets.QLabel(self)
        self.label_interval_name.setFont(self.font_interval_name)
        self.label_interval_name.setAlignment(QtCore.Qt.AlignCenter)
        self.label_interval_name.setText(self.workout.intervals[0].text)

        # Timers
        self.timers = Timers(self)

        # Count down
        self.count_down = CountDown(self)
        self.count_down.addWidget(self.label_interval_name,
                                  QtCore.Qt.AlignCenter)
        self.count_down.addWidget(self.timers, QtCore.Qt.AlignCenter)
        self.grid_layout.addWidget(self.count_down, 1, 0, 1, 1,
                                   QtCore.Qt.AlignCenter)

        # Upcoming intervals widget
        self.upcoming_intervals = UpcomingIntervals(self)
        self.grid_layout.addWidget(self.upcoming_intervals, 1, 1, 2, 1,
                                   QtCore.Qt.AlignCenter)

        # Sound for changing interval
        self.bell = QtMultimedia.QSound(path.dirname(__file__) + '/tone.wav')

        # Create buttons
        self.buttons = Buttons(self)
        self.grid_layout.addWidget(self.buttons, 2, 0, 1, 1,
                                   QtCore.Qt.AlignCenter)
        # Create start/pause shortcut
        self.shortcut_start_pause = QtWidgets.QShortcut(
            QtCore.Qt.Key_Space, self, self.start_pause)
        # Create stop shortcut
        self.shortcut_stop = QtWidgets.QShortcut(QtCore.Qt.Key_S, self,
                                                 self.stop)

        # Initialise timer
        self.timer = QtCore.QTimer()
        self.timer.setInterval(50)
        self.timer.timeout.connect(self.redraw)
        self.timer.start()

        self.show()
예제 #29
0
    rect = item.boundingRect().center()
    return [x + rect.x(), y + rect.y()]


def amount_format(x, n_decimals):
    if float(x).is_integer():
        return f"{x:n}"
    else:
        x = round(x, n_decimals)
        return f"{x:n}"


BLINDS = [ActionType.SB, ActionType.BB, ActionType.STRADDLE]

_sounds = {
    f.stem: QtMultimedia.QSound(str(f))
    for f in (RESOURCE_PATH / "sounds").glob("*.wav")
}

sounds = {
    ActionType.BET: _sounds["bet"],
    ActionType.RAISE: _sounds["bet"],
    ActionType.CHECK: _sounds["check"],
    ActionType.CALL: _sounds["call"],
    ActionType.FOLD: _sounds["fold"],
    ActionType.BB: _sounds["bet"],
    ActionType.ANTE: _sounds["bet"],
    ActionType.STRADDLE: _sounds["bet"],
    "street": _sounds["street"],
    "call_closing": _sounds["call_closing"],
}
예제 #30
0
    def __init__(self, parent=None):
        """Build a game with two dice."""

        super().__init__()
        uic.loadUi(os.path.join("UI Files", "tictactoe.ui"), self)

        self.buttons = [
            self.button1, self.button2, self.button3, self.button4,
            self.button5, self.button6, self.button7, self.button8,
            self.button9
        ]
        self.used = []

        try:
            with open("tictactoe.pkl", 'rb') as pickledData:
                self.pickledSelfData = load(pickledData)
                self.user, self.computer, self.wins, self.losses, self.draws, self.goFirst, self.result, self.btnStatus, self.logging = self.pickledSelfData
                index = 0
                for button in self.buttons:
                    button.setText(self.btnStatus[index][1])
                    button.setEnabled(self.btnStatus[index][0])
                    if button.isEnabled():
                        self.used.append(button)
                    index += 1
                self.updateUI()
                if self.logging:
                    logging.info(
                        "Successfuly retrieved save game and applied it")

        except FileNotFoundError:
            self.logging = True
            self.user = '******'
            self.result = "Welcome to Tic Tac Toe!"
            self.computer = 'O'
            self.wins = 0
            self.losses = 0
            self.draws = 0
            self.goFirst = True
            if self.logging:
                logging.info("Could not retrieve data from save game")

        self.values = (self.user, self.computer)
        self.corners = [self.button1, self.button3, self.button7, self.button9]
        self.edges = [self.button8, self.button4, self.button6, self.button2]
        self.notes = {
            "win": QtMultimedia.QSound(os.path.join("Sounds", "win.wav")),
            "lose": QtMultimedia.QSound(os.path.join("Sounds", "lose.wav")),
            "circle": QtMultimedia.QSound(os.path.join("Sounds",
                                                       "circle.wav")),
            "cross": QtMultimedia.QSound(os.path.join("Sounds", "cross.wav"))
        }

        self.actionSettings.triggered.connect(self.showSettings)

        self.button1.clicked.connect(
            lambda: self.play(self.button1, self.user))
        self.button2.clicked.connect(
            lambda: self.play(self.button2, self.user))
        self.button3.clicked.connect(
            lambda: self.play(self.button3, self.user))
        self.button4.clicked.connect(
            lambda: self.play(self.button4, self.user))
        self.button5.clicked.connect(
            lambda: self.play(self.button5, self.user))
        self.button6.clicked.connect(
            lambda: self.play(self.button6, self.user))
        self.button7.clicked.connect(
            lambda: self.play(self.button7, self.user))
        self.button8.clicked.connect(
            lambda: self.play(self.button8, self.user))
        self.button9.clicked.connect(
            lambda: self.play(self.button9, self.user))
        self.newGameButton.clicked.connect(self.restartGame)

        if self.logging:
            logging.info(
                "Initialized all buttons and verified that they exist.")