예제 #1
0
    def __init__(self):
        Window.__init__(self)

        self.create(0,
                    0,
                    WINDOW_WIDTH,
                    WINDOW_HEIGHT,
                    caption=True,
                    resize=False)

        self._initTetris()

        # Button for 'Start' and 'Tetris.PAUSE'
        self._triggerButton = TextButton(self)
        self._triggerButton.rect = (0, 0, 50, 30)
        self._triggerButton.fontColor = color.red
        self._triggerButton.text = 'Start'
        self._triggerButton.background = r'Images\Button.jpg'
        self.autoRemove(self._triggerButton.bind('Click', self._onTrigger))

        # Button for 'Restart'
        self._restartButton = TextButton(self)
        self._restartButton.rect = (60, 0, 50, 30)
        self._restartButton.fontColor = color.red
        self._restartButton.text = 'Restart'
        self._restartButton.background = r'Images\Button.jpg'
        self.autoRemove(self._restartButton.bind('Click', self._onRestart))

        self._backgroundTexture = self.imageTextureManager.GetTexture(
            r'Images\Background.jpg')
        self._backgroundEffect = self.effectManager.GetEffect(
            r'backgroundEffects\Background.fx')

        self._fontEffect = self.effectManager.GetEffect(r'fontEffects\font.fx')
예제 #2
0
    def __init__(self):
        Window.__init__(self)

        self.create(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, caption=True)
        self._plate_images = []

        # Button for 'Start' and 'Pause'
        self._trigger_button = TextButton(self)
        self._trigger_button.rect = 0, 0, 50, 30
        self._trigger_button.text = 'Start'
        self._trigger_button.background = r'Images\Root_button.png'
        self.autoRemove(
            self._trigger_button.bind('Click', self._on_trigger_button_click))

        # Button for 'Restart'
        self._restart_button = TextButton(self)
        self._restart_button.rect = 60, 0, 50, 30
        self._restart_button.text = 'Restart'
        self._restart_button.background = r'Images\Root_button.png'
        self.autoRemove(
            self._restart_button.bind('Click', self._on_restart_button_click))

        # Button for 'Next'
        self._next_button = TextButton(self)
        self._next_button.rect = 120, 0, 50, 30
        self._next_button.text = 'Next'
        self._next_button.background = r'Images\Root_button.png'
        self.autoRemove(
            self._next_button.bind('Click', self._on_next_button_click))

        self._init_hanoi()
예제 #3
0
    def _init_hanoi(self):
        # Variables for the animation
        self._next_move = True
        self._move = 0
        self._starting_left = 0
        self._starting_top = 0
        self._target_left = 0
        self._target_top = 0
        self._acceleration = 0
        self._time_spent = 0

        # Flags indicating the state of the program
        self._running_flag = False
        self._step_by_step_flag = False
        self._over_flag = False

        # Reset the trigger_button to 'Start'
        self._trigger_button.text = 'Start'

        # Hanoi algorithm object
        self._hanoi = Hanoi(input('Please enter the number of plates\n'))

        # Initialization of the plate images
        for each_plate in self._hanoi.get_plates(0):
            plate_image = TextButton(self)
            plate_image.rect = (70 + self._hanoi.get_total() * PLATE_BASE_WIDTH / 2) - each_plate.number * PLATE_BASE_WIDTH / 2, \
                               (WINDOW_HEIGHT - self._hanoi.get_total() * PLATE_HEIGHT) + each_plate.number * PLATE_HEIGHT, \
                               PLATE_BASE_WIDTH * (each_plate.number + 1), \
                               PLATE_HEIGHT

            plate_image.background = r'Images\Root_button.png'
            self._plate_images.insert(0, plate_image)

        # Start running the hanoi algorithm and animation
        self._steps = self._hanoi.move(self._hanoi.get_total(), 0, 2)
        self._animation = koan.anim.IntervalExecute(TIME_INTERVAL,
                                                    self._onTimer)
예제 #4
0
    def __init__(self):
        Window.__init__(self)

        # Initialization of the C++ DirectShow Library
        self.audioFunctions = AudioFunctions()
        self.audioFunctions.InitDirectShow()

        # Media Information
        self.media = Media()

        # The main window
        self.create(100, 100, 700, 300, caption=True, resize=False)

        # Button for 'OpenFile'
        self._openFileButton = TextButton(self)
        self._openFileButton.rect = (0, 0, 50, 30)
        self._openFileButton.text = 'OpenFile'
        self._openFileButton.background = r'Images\Root_button.png'
        self.autoRemove(self._openFileButton.bind('Click', self._onOpenFile))

        # Button for 'Play' and 'Pause'
        self._triggerButton = TextButton(self)
        self._triggerButton.rect = (60, 0, 50, 30)
        self._triggerButton.text = 'Play'
        self._triggerButton.background = r'Images\Root_button.png'
        self.autoRemove(self._triggerButton.bind('Click', self._onTrigger))

        # Button for 'Stop'
        self._stopButton = TextButton(self)
        self._stopButton.rect = (120, 0, 50, 30)
        self._stopButton.text = 'Stop'
        self._stopButton.background = r'Images\Root_button.png'
        self.autoRemove(self._stopButton.bind('Click', self._onStop))

        # Button for 'Remove'
        self._stopButton = TextButton(self)
        self._stopButton.rect = (450, 0, 50, 30)
        self._stopButton.text = 'Remove'
        self._stopButton.background = r'Images\Root_button.png'
        self.autoRemove(self._stopButton.bind('Click', self._onRemove))

        # PlayTime
        self._playTimeText = Text(self)
        self._playTimeText.autosize = True
        self._playTimeText.text = 'PlayTime'
        self._playTimeText.fontSize = 15
        self._playTimeText.xy = (30, 155)

        # Slider for 'playTime'
        self._playTimeSlider = Slider(self)
        self._playTimeSlider.bgColor = color.gray
        self._playTimeSlider.vertical = False
        self._playTimeSlider.rect = (100, 160, 255, 10)
        self._playTimeSlider.thumbMinSize = 10
        self._playTimeSlider.thumbImage = r'Images\ScrollBarThumb.jpg'
        self.autoRemove(
            self._playTimeSlider.bind('Slide', self._onPlayTimeSlide))
        self.autoRemove(
            self._playTimeSlider.bind('Slide Start',
                                      self._onPlayTimeSlideStart))
        self.autoRemove(
            self._playTimeSlider.bind('Slide End', self._onPlayTimeSlideEnd))

        # Slider for 'Volume'
        self._volumeSlider = Slider(self)
        self._volumeSlider.bgColor = color.gray
        self._volumeSlider.vertical = True
        self._volumeSlider.rect = (400, 50, 10, 100)
        self._volumeSlider.thumbMinSize = 10
        self._volumeSlider.thumbImage = r'Images\ScrollBarThumb.jpg'
        self.autoRemove(self._volumeSlider.bind('Slide', self._onVolumeSlide))

        # Volume
        self._volumeText = Text(self)
        self._volumeText.autosize = True
        self._volumeText.text = 'Volume'
        self._volumeText.fontSize = 15
        self._volumeText.xy = (380, 155)

        # Media Information text
        self._mediaInfoText = Text(self)
        self._mediaInfoText.autosize = True
        self._mediaInfoText.fontSize = 15
        self._mediaInfoText.xy = (20, 45)
        self._mediaInfoText.text = 'FileName: \n' \
                                   'Duration: 0 min 0 sec\n'

        # Media Position text
        self._mediaPositionText = Text(self)
        self._mediaPositionText.autosize = True
        self._mediaPositionText.fontSize = 15
        self._mediaPositionText.xy = (20, 80)
        self._mediaPositionText.text = 'Position: 0 min 0 sec\n'

        # Playlist text
        self._playlistText = Text(self)
        self._playlistText.autosize = True
        self._playlistText.text = 'Playlist'
        self._playlistText.fontSize = 15
        self._playlistText.fontColor = color.blue
        self._playlistText.xy = (450, 30)

        # Restore the playlist from disk
        self.playList = {}
        self.workingDir = os.getcwd()  # Locate the current working directory

        try:
            playListFile = open(self.workingDir + r'\PlayList.pickle', 'rb')
        except IOError:
            print '[AudioBoxWindow::__init__] No Playlist File Found'
        else:
            print '[AudioBoxWindow::__init__] Load Playlist File'
            self.playList = pickle.load(
                playListFile)  # Dictionary storing the playlist
            playListFile.close()

        # Radio button group
        self._platListGroup = Group(self)
        self._platListGroup.xy = (450, 50)
        self._platListGroup.size = (200, 500)
        self._platListGroup.autosize = True

        # Display the playlist
        self.mediaButtonList = []
        self._refreshPlayList()

        # Flag indicating if the playTime slider is sliding
        self.playTimeSliding = False

        self.displayAnim = None
        self.displayAnimRunning = False