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()
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
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()
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()
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)
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()
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()
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')
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
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"] )
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()
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)
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()
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()
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)
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
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)
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))
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)
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)
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()
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
def beep_sound(): if MULTIMEDIA_PACKAGE: sound_obj = QtMultimedia.QSound(BEEP_SOUND_FILE) sound_obj.play(BEEP_SOUND_FILE)
def setOffTheAlarm(self): self.alarm = QtMultimedia.QSound("audio/mainAlarm.wav") self.alarm.play()
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()
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
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()
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"], }
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.")