示例#1
0
    def __init__(self, parent):
        super().__init__(parent)

        self._is_playing = False
        self._play_pos = [0 for _ in range(pyxel.MUSIC_CHANNEL_COUNT)]
        self.field_cursor = FieldCursor(
            self.get_data,
            self.add_pre_history,
            self.add_post_history,
            MAX_MUSIC_LENGTH,
            16,
            pyxel.MUSIC_CHANNEL_COUNT,
        )
        self._music_picker = NumberPicker(self, 45, 17, 0,
                                          pyxel.MUSIC_BANK_COUNT - 1, 0)
        self._play_button = ImageButton(
            self,
            185,
            17,
            pyxel.IMAGE_BANK_FOR_SYSTEM,
            EDITOR_IMAGE_X + 126,
            EDITOR_IMAGE_Y,
        )
        self._stop_button = ImageButton(
            self,
            195,
            17,
            pyxel.IMAGE_BANK_FOR_SYSTEM,
            EDITOR_IMAGE_X + 135,
            EDITOR_IMAGE_Y,
        )
        self._loop_button = ImageToggleButton(
            self,
            205,
            17,
            pyxel.IMAGE_BANK_FOR_SYSTEM,
            EDITOR_IMAGE_X + 144,
            EDITOR_IMAGE_Y,
        )
        self._music_field = [
            MusicField(self, 11, 29 + i * 25, i) for i in range(4)
        ]
        self._sound_selector = SoundSelector(self)

        self.add_event_handler("undo", self.__on_undo)
        self.add_event_handler("redo", self.__on_redo)
        self.add_event_handler("hide", self.__on_hide)
        self.add_event_handler("update", self.__on_update)
        self.add_event_handler("draw", self.__on_draw)
        self._play_button.add_event_handler("press",
                                            self.__on_play_button_press)
        self._stop_button.add_event_handler("press",
                                            self.__on_stop_button_press)
        self._play_button.add_event_handler("mouse_hover",
                                            self.__on_play_button_mouse_hover)
        self._stop_button.add_event_handler("mouse_hover",
                                            self.__on_stop_button_mouse_hover)
        self._loop_button.add_event_handler("mouse_hover",
                                            self.__on_loop_button_mouse_hover)
        self.add_number_picker_help(self._music_picker)
示例#2
0
文件: app.py 项目: yyq90/pyxel
    def __init__(self, resource_file):
        resource_file = os.path.join(os.getcwd(), resource_file)
        root, ext = os.path.splitext(resource_file)
        if ext != ".pyxel":
            resource_file += ".pyxel"

        pyxel.init(
            EDITOR_WIDTH,
            EDITOR_HEIGHT,
            caption="Pyxel Editor - {}".format(resource_file),
        )

        try:
            pyxel.load(resource_file)
        except FileNotFoundError:
            pass

        super().__init__(None, 0, 0, pyxel.width, pyxel.height)

        self._resource_file = resource_file
        self._editor_list = [
            ImageEditor(self),
            TileMapEditor(self),
            SoundEditor(self),
            MusicEditor(self),
        ]
        self._editor_button = RadioButton(self, 1, 1, 3, 0, 16, 4, EDITOR_IMAGE)
        self._undo_button = ImageButton(self, 48, 1, 3, 36, 16)
        self._redo_button = ImageButton(self, 57, 1, 3, 45, 16)
        self._save_button = ImageButton(self, 75, 1, 3, 54, 16)
        self.help_message = ""

        self._editor_button.add_event_handler(
            "change", lambda value: self.set_editor(value)
        )
        self.add_event_handler("update", self.__on_update)
        self.add_event_handler("draw", self.__on_draw)
        self._undo_button.add_event_handler("press", self.__on_undo_press)
        self._redo_button.add_event_handler("press", self.__on_redo_press)
        self._save_button.add_event_handler("press", self.__on_save_press)
        self._editor_button.add_event_handler(
            "mouse_hover", self.__editor_button_on_mouse_hover
        )
        self._undo_button.add_event_handler(
            "mouse_hover", self.__undo_button_on_mouse_hover
        )
        self._redo_button.add_event_handler(
            "mouse_hover", self.__redo_button_on_mouse_hover
        )
        self._save_button.add_event_handler(
            "mouse_hover", self.__save_button_on_mouse_hover
        )

        self.set_editor(0)

        image_file = os.path.join(os.path.dirname(__file__), "assets", "editor.png")
        pyxel.image(3, system=True).load(0, 16, image_file)

        pyxel.run(self.update_widgets, self.draw_widgets)
示例#3
0
    def __init__(self, parent):
        super().__init__(parent)

        self.field_cursor = FieldCursor(
            self.get_data,
            self.add_pre_history,
            self.add_post_history,
            MAX_SOUND_LENGTH,
            MAX_SOUND_LENGTH,
            4,
        )
        self.octave = 2
        self._is_playing = False
        self._play_pos = -1
        self._history_data = None
        self._sound_picker = NumberPicker(self, 45, 17, 0,
                                          pyxel.USER_SOUND_BANK_COUNT - 1, 0)
        self._speed_picker = NumberPicker(self, 105, 17, 1, 99,
                                          pyxel.sound(0).speed)
        self._play_button = ImageButton(self, 185, 17, 3, EDITOR_IMAGE_X + 126,
                                        EDITOR_IMAGE_Y)
        self._stop_button = ImageButton(self,
                                        195,
                                        17,
                                        3,
                                        EDITOR_IMAGE_X + 135,
                                        EDITOR_IMAGE_Y,
                                        is_enabled=False)
        self._loop_button = ImageToggleButton(self, 205, 17, 3,
                                              EDITOR_IMAGE_X + 144,
                                              EDITOR_IMAGE_Y)
        self._piano_keyboard = PianoKeyboard(self)
        self._piano_roll = PianoRoll(self)
        self._sound_field = SoundField(self)
        self._left_octave_bar = OctaveBar(self, 12, 25)
        self._right_octave_bar = OctaveBar(self, 224, 25)

        self.add_event_handler("undo", self.__on_undo)
        self.add_event_handler("redo", self.__on_redo)
        self.add_event_handler("hide", self.__on_hide)
        self.add_event_handler("update", self.__on_update)
        self.add_event_handler("draw", self.__on_draw)
        self._sound_picker.add_event_handler("change",
                                             self.__on_sound_picker_change)
        self._speed_picker.add_event_handler("change",
                                             self.__on_speed_picker_change)
        self._play_button.add_event_handler("press",
                                            self.__on_play_button_press)
        self._stop_button.add_event_handler("press",
                                            self.__on_stop_button_press)
        self._play_button.add_event_handler("mouse_hover",
                                            self.__on_play_button_mouse_hover)
        self._stop_button.add_event_handler("mouse_hover",
                                            self.__on_stop_button_mouse_hover)
        self._loop_button.add_event_handler("mouse_hover",
                                            self.__on_loop_button_mouse_hover)
        self.add_number_picker_help(self._sound_picker)
        self.add_number_picker_help(self._speed_picker)
示例#4
0
    def __init__(self, parent):
        super().__init__(parent)

        self._music_picker = NumberPicker(self, 45, 17, 0, AUDIO_MUSIC_COUNT - 1, 0)
        self._play_button = ImageButton(self, 190, 17, 3, 126, 16)
        self._stop_button = ImageButton(self, 200, 17, 3, 135, 16)
        self._loop_button = ImageButton(self, 210, 17, 3, 144, 16)

        self.add_event_handler("draw", self.__on_draw)
示例#5
0
    def __init__(self, parent):
        super().__init__(parent)

        self._music_picker = NumberPicker(self, 45, 17, 0,
                                          AUDIO_MUSIC_COUNT - 1, 0)
        self._play_button = ImageButton(self, 185, 17, 3, EDITOR_IMAGE_X + 126,
                                        EDITOR_IMAGE_Y)
        self._stop_button = ImageButton(self, 195, 17, 3, EDITOR_IMAGE_X + 135,
                                        EDITOR_IMAGE_Y)
        self._loop_button = ImageButton(self, 205, 17, 3, EDITOR_IMAGE_X + 144,
                                        EDITOR_IMAGE_Y)

        self.add_event_handler("draw", self.__on_draw)
示例#6
0
    def __init__(self, parent):
        super().__init__(parent)

        self.cursor_x = 0
        self.cursor_y = 0
        self.octave = 2
        self._play_info = SoundEditor.PlayInfo()
        self._history_data = None
        self._sound_picker = NumberPicker(self, 45, 17, 0,
                                          AUDIO_SOUND_COUNT - 1, 0)
        self._speed_picker = NumberPicker(self, 105, 17, 1, 99,
                                          pyxel.sound(0).speed)
        self._play_button = ImageButton(self, 185, 17, 3, EDITOR_IMAGE_X + 126,
                                        EDITOR_IMAGE_Y)
        self._stop_button = ImageButton(self,
                                        195,
                                        17,
                                        3,
                                        EDITOR_IMAGE_X + 135,
                                        EDITOR_IMAGE_Y,
                                        is_enabled=False)
        self._loop_button = ImageToggleButton(self, 205, 17, 3,
                                              EDITOR_IMAGE_X + 144,
                                              EDITOR_IMAGE_Y)
        self._piano_keyboard = PianoKeyboard(self)
        self._piano_roll = PianoRoll(self)
        self._sound_input = SoundInput(self)
        self._left_octave_bar = OctaveBar(self, 12, 25)
        self._right_octave_bar = OctaveBar(self, 224, 25)

        self.add_event_handler("undo", self.__on_undo)
        self.add_event_handler("redo", self.__on_redo)
        self.add_event_handler("update", self.__on_update)
        self.add_event_handler("draw", self.__on_draw)
        self._sound_picker.add_event_handler("change",
                                             self.__on_sound_picker_change)
        self._speed_picker.add_event_handler("change",
                                             self.__on_speed_picker_change)
        self._play_button.add_event_handler("press",
                                            self.__on_play_button_press)
        self._stop_button.add_event_handler("press",
                                            self.__on_stop_button_press)
        self._play_button.add_event_handler("mouse_hover",
                                            self.__on_play_button_mouse_hover)
        self._stop_button.add_event_handler("mouse_hover",
                                            self.__on_stop_button_mouse_hover)
        self._loop_button.add_event_handler("mouse_hover",
                                            self.__on_loop_button_mouse_hover)
        self.add_number_picker_help(self._sound_picker)
        self.add_number_picker_help(self._speed_picker)
示例#7
0
    def __init__(self, resource_file):
        resource_file = os.path.join(os.getcwd(), resource_file)
        root, ext = os.path.splitext(resource_file)
        if ext != ".pyxel":
            resource_file += ".pyxel"

        pyxel.init(
            EDITOR_WIDTH,
            EDITOR_HEIGHT,
            caption="Pyxel Editor - {}".format(resource_file),
        )

        try:
            pyxel.load(resource_file)
        except FileNotFoundError:
            pass

        self._resource_file = resource_file
        self._root_widget = Widget(None, 0, 0, 0, 0)

        self._screen_list = [
            ImageEditor(self._root_widget),
            TileMapEditor(self._root_widget),
            SoundEditor(self._root_widget),
            MusicEditor(self._root_widget),
        ]

        self._screen_button = RadioButton(self._root_widget, 3, 1, 3, 3, 13, 4)
        self._screen_button.add_event_handler(
            "change", lambda value: self.set_screen(value))
        self.set_screen(0)

        self._undo_button = ImageButton(self._root_widget, 48, 1, 3, 48, 13)
        self._undo_button.add_event_handler("press", self.__on_undo_press)

        self._redo_button = ImageButton(self._root_widget, 57, 1, 3, 57, 13)
        self._redo_button.add_event_handler("press", self.__on_redo_press)

        self._save_button = ImageButton(self._root_widget, 75, 1, 3, 75, 13)
        self._save_button.add_event_handler("press", self.__on_save_press)

        pyxel.run(self.update, self.draw)
示例#8
0
文件: app.py 项目: EikiObara/myMaze
    def __init__(self, resource_file):
        resource_file = os.path.join(os.getcwd(), resource_file)
        root, ext = os.path.splitext(resource_file)
        if ext != ".pyxel":
            resource_file += ".pyxel"

        pyxel.init(
            APP_WIDTH, APP_HEIGHT, caption="Pyxel Editor - {}".format(resource_file)
        )
        pyxel.mouse(True)

        try:
            pyxel.load(resource_file)
        except FileNotFoundError:
            pass

        super().__init__(None, 0, 0, pyxel.width, pyxel.height)

        self._resource_file = resource_file
        self._editor_list = [
            ImageEditor(self),
            TileMapEditor(self),
            SoundEditor(self),
            MusicEditor(self),
        ]
        self._editor_button = RadioButton(
            self, 1, 1, 3, EDITOR_IMAGE_X, EDITOR_IMAGE_Y, 4, 0
        )
        self._undo_button = ImageButton(
            self, 48, 1, 3, EDITOR_IMAGE_X + 36, EDITOR_IMAGE_Y
        )
        self._redo_button = ImageButton(
            self, 57, 1, 3, EDITOR_IMAGE_X + 45, EDITOR_IMAGE_Y
        )
        self._save_button = ImageButton(
            self, 75, 1, 3, EDITOR_IMAGE_X + 54, EDITOR_IMAGE_Y
        )
        self.help_message = ""

        self._editor_button.add_event_handler(
            "change", lambda value: self._set_editor(value)
        )
        self.add_event_handler("update", self.__on_update)
        self.add_event_handler("draw", self.__on_draw)
        self._undo_button.add_event_handler("press", self.__on_undo_button_press)
        self._undo_button.add_event_handler("repeat", self.__on_undo_button_press)
        self._redo_button.add_event_handler("press", self.__on_redo_button_press)
        self._redo_button.add_event_handler("repeat", self.__on_redo_button_press)
        self._save_button.add_event_handler("press", self.__on_save_button_press)
        self._editor_button.add_event_handler(
            "mouse_hover", self.__on_editor_button_mouse_hover
        )
        self._undo_button.add_event_handler(
            "mouse_hover", self.__on_undo_button_mouse_hover
        )
        self._redo_button.add_event_handler(
            "mouse_hover", self.__on_redo_button_mouse_hover
        )
        self._save_button.add_event_handler(
            "mouse_hover", self.__on_save_button_mouse_hover
        )

        glfw.set_drop_callback(pyxel._app._window, self._drop_callback)
        image_file = os.path.join(
            os.path.dirname(__file__), "assets", EDITOR_IMAGE_NAME
        )
        pyxel.image(3, system=True).load(EDITOR_IMAGE_X, EDITOR_IMAGE_Y, image_file)

        self._set_editor(0)

        pyxel.run(self.update_widgets, self.draw_widgets)
示例#9
0
    def __init__(self, resource_file):
        resource_file = os.path.join(os.getcwd(), resource_file)
        root, ext = os.path.splitext(resource_file)
        if ext != pyxel.RESOURCE_FILE_EXTENSION:
            resource_file += pyxel.RESOURCE_FILE_EXTENSION

        pyxel.init(
            APP_WIDTH, APP_HEIGHT, caption="Pyxel Editor - {}".format(resource_file)
        )
        pyxel.mouse(True)

        if os.path.exists(resource_file):
            pyxel.load(resource_file)

        if ext == ".pyxel":
            resource_file = root + pyxel.RESOURCE_FILE_EXTENSION

        super().__init__(None, 0, 0, pyxel.width, pyxel.height)

        self._resource_file = resource_file
        self._editor_list = [
            ImageEditor(self),
            TileMapEditor(self),
            SoundEditor(self),
            MusicEditor(self),
        ]
        self._editor_button = RadioButton(
            self,
            1,
            1,
            pyxel.IMAGE_BANK_FOR_SYSTEM,
            EDITOR_IMAGE_X,
            EDITOR_IMAGE_Y,
            4,
            0,
        )
        self._undo_button = ImageButton(
            self,
            48,
            1,
            pyxel.IMAGE_BANK_FOR_SYSTEM,
            EDITOR_IMAGE_X + 36,
            EDITOR_IMAGE_Y,
        )
        self._redo_button = ImageButton(
            self,
            57,
            1,
            pyxel.IMAGE_BANK_FOR_SYSTEM,
            EDITOR_IMAGE_X + 45,
            EDITOR_IMAGE_Y,
        )
        self._save_button = ImageButton(
            self,
            75,
            1,
            pyxel.IMAGE_BANK_FOR_SYSTEM,
            EDITOR_IMAGE_X + 54,
            EDITOR_IMAGE_Y,
        )
        self.help_message = ""

        self._editor_button.add_event_handler(
            "change", lambda value: self._set_editor(value)
        )
        self.add_event_handler("update", self.__on_update)
        self.add_event_handler("draw", self.__on_draw)
        self._undo_button.add_event_handler("press", self.__on_undo_button_press)
        self._undo_button.add_event_handler("repeat", self.__on_undo_button_press)
        self._redo_button.add_event_handler("press", self.__on_redo_button_press)
        self._redo_button.add_event_handler("repeat", self.__on_redo_button_press)
        self._save_button.add_event_handler("press", self.__on_save_button_press)
        self._editor_button.add_event_handler(
            "mouse_hover", self.__on_editor_button_mouse_hover
        )
        self._undo_button.add_event_handler(
            "mouse_hover", self.__on_undo_button_mouse_hover
        )
        self._redo_button.add_event_handler(
            "mouse_hover", self.__on_redo_button_mouse_hover
        )
        self._save_button.add_event_handler(
            "mouse_hover", self.__on_save_button_mouse_hover
        )

        image_file = os.path.join(
            os.path.dirname(__file__), "assets", EDITOR_IMAGE_NAME
        )
        pyxel.image(pyxel.IMAGE_BANK_FOR_SYSTEM, system=True).load(
            EDITOR_IMAGE_X, EDITOR_IMAGE_Y, image_file
        )

        self._set_editor(0)

        pyxel.run(self.update_widgets, self.draw_widgets)