Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Исправить недочеты в коде меню (RPG Maker XP)

Исправить недочеты в коде меню (RPG Maker XP) 9 года 11 мес. назад #69053

  • loveseac
  • loveseac аватар
  • Вне сайта
  • Путник
  • Сообщений: 6
  • Спасибо получено: 4
Нужно было убрать из меню лишние окошки (счетчик шагов, скилы, статус). По-сырому вроде вышло, но есть несколько важных недочетов:
1. Весьма неряшливый внешний вид.
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Хотелось бы, чтобы окошки выглядели совсем иначе, примерно так:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Или окошко меню по центру, но тоже на фоне происходящего. Или даже все тоже самое, но на прозрачном фоне. Потому что на черном как-то не смотрится. Но здесь вопрос скорее эстетический, не столько важный.
2. При нажимании на Save и End Game игра внезапно показывает нам такое вот уродство:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

При нажатии кнопки вверх меню снова становится в прежний вид. Но все же такое вот несколько мешает при игри и выглядит не слишком привлекательно для игроков.
Код окошка Scene_menu:
when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1  # # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 2  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
Надеюсь, мне помогут найти те места в коде, которые надо поменять для дальнейшего улучшения.
Последнее редактирование: 9 года 11 мес. назад от loveseac.
Администратор запретил публиковать записи гостям.

Исправить недочеты в коде меню (RPG Maker XP) 9 года 11 мес. назад #69060

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • Организатор конкурсовПрограммист Ruby2 место
Вполне вероятно в функции update стоят старые значения нахождения окон. И при ее срабатывании (когда нажимается кнопка) окна ставятся по старому.
PS. Это вообще какой мейкер?
Администратор запретил публиковать записи гостям.

Исправить недочеты в коде меню (RPG Maker XP) 9 года 11 мес. назад #69061

  • loveseac
  • loveseac аватар
  • Вне сайта
  • Путник
  • Сообщений: 6
  • Спасибо получено: 4
Исправила, извините. XP, конечно же. А как убрать в этиз самых функциях значения?
Администратор запретил публиковать записи гостям.

Исправить недочеты в коде меню (RPG Maker XP) 9 года 11 мес. назад #69066

  • Lipton
  • Lipton аватар
  • Вне сайта
  • Просветлённый
  • Ух ты!
  • Сообщений: 379
  • Спасибо получено: 670
  • Организатор конкурсовПрограммист Ruby2 место
С ХР не помогу. Нет его у меня. =(
Администратор запретил публиковать записи гостям.

Исправить недочеты в коде меню (RPG Maker XP) 9 года 11 мес. назад #69080

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • 1 место в ГотвПрограммист RubyОрганизатор конкурсов3 местоВетеранУчительПроект месяца 2 местоПроект месяца 1 местоПисатель 3 место
Got ya!
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================
 
class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make command window
    s1 = $data_system.words.item
    s2 = "Save"
    s3 = "End Game"
    @command_window = Window_Command.new(160, [s1, s2, s3])
    @command_window.x = 0
    @command_window.y = 192
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(1)
    end
    # Make play time window
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 320
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    #Add map viewport
    @map=Spriteset_Map.new
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @command_window.dispose
    @playtime_window.dispose
    @gold_window.dispose
    @map.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @command_window.update
    @playtime_window.update
    @gold_window.update
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 2  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
end

Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Cerberus, Lekste, loveseac
Модераторы: NeKotZima
Время создания страницы: 0.311 секунд