예제 #1
0
            def generate_platforms():

                try:
                    if self.completion < 100:

                        player_x = self.test_player.x()

                        free_to_spawn = True

                        platforms_to_add = []

                        num_to_spawn = randint(2, 10)
                        counter = 0

                        for p in self.platforms:
                            if player_x + self.window_width / 4 < p.x < player_x + self.window_width:
                                free_to_spawn = False

                        if free_to_spawn:

                            while counter < num_to_spawn:
                                can_be_added = True

                                platform_to_add = Platform(
                                    randint(
                                        player_x + self.window_width / 2,
                                        player_x + self.window_width / 2 +
                                        150), randint(100, 500),
                                    int(self.platform_specs[0]),
                                    int(self.platform_specs[1]),
                                    self.enemy_specs)

                                if self.rightKeydown:
                                    platform_to_add.set_x_velocity(
                                        -self.test_player.speed)

                                for plat in platforms_to_add:
                                    if -40 < platform_to_add.x - plat.x < 40 or -80 < platform_to_add.y - plat.y < 80:
                                        can_be_added = False

                                if can_be_added:
                                    platforms_to_add.append(platform_to_add)
                                    if platform_to_add.enemy != None:
                                        self.enemies.append(
                                            platform_to_add.enemy)

                                counter = counter + 1
                            for p in platforms_to_add:

                                self.platforms.append(p)
                                self.scene.addItem(p)
                                if p.health_package != None:
                                    self.scene.addItem(p.health_package)

                            for e in self.enemies:
                                if self.rightKeydown:
                                    e.x_velocity = -int(self.test_player.speed)
                                e.set_p_speed(self.test_player.speed)
                                self.scene.addItem(e)

                    else:
                        if not self.goal_added:

                            goalPost1 = Platform(self.window_width + 600,
                                                 300 - 60, 20, 60)
                            goalPost2 = Platform(self.window_width + 700,
                                                 300 - 60, 20, 60)
                            goalBar = Platform(self.window_width + 600,
                                               300 - 70, 120, 20)

                            goalPost1.goal = True
                            goalPost2.goal = True
                            goalBar.goal = True

                            plat_to_add = Platform(self.window_width, 300, 800,
                                                   25)
                            plat_to_add.setBrush(
                                QtGui.QBrush(QtGui.QColor(214, 255, 48),
                                             QtCore.Qt.SolidPattern))

                            goalPost1.setBrush(
                                QtGui.QBrush(QtGui.QColor(196, 255, 0),
                                             QtCore.Qt.SolidPattern))
                            goalPost2.setBrush(
                                QtGui.QBrush(QtGui.QColor(196, 255, 0),
                                             QtCore.Qt.SolidPattern))
                            goalBar.setBrush(
                                QtGui.QBrush(QtGui.QColor(196, 255, 0),
                                             QtCore.Qt.SolidPattern))
                            if self.rightKeydown:
                                goalPost1.set_x_velocity(
                                    -self.test_player.speed)
                                goalPost2.set_x_velocity(
                                    -self.test_player.speed)
                                goalBar.set_x_velocity(-self.test_player.speed)
                                plat_to_add.set_x_velocity(
                                    -self.test_player.speed)
                            self.scene.addItem(plat_to_add)
                            self.scene.addItem(goalPost1)
                            self.scene.addItem(goalPost2)
                            self.scene.addItem(goalBar)
                            self.platforms.append(goalPost1)
                            self.platforms.append(goalPost2)
                            self.platforms.append(goalBar)
                            self.platforms.append(plat_to_add)
                            self.goal_added = True
                except Exception as e:
                    print(e)