Страница 129 из 147 ПерваяПервая ... 2979119127128129130131139 ... ПоследняяПоследняя
Показано с 1,281 по 1,290 из 1470

Тема: Помощь с скриптами (RGSS)

  1. #1281
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    можно, поищи у галва скрипт, у него вроде есть

  2. #1282
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    доброе.
    сижу и матюкаюсь в попытке написать скрипт под фонарик. уже вроде написал, все робит, открыл меню, мать его, крит. делаю по другому, не робит апдейт спрайта фонарика.
    с психу удалил самописку из проекта, но суть такова:
    вывожу спрайт через Spriteset_Map
    создаю
    @flashlight = Sprite.new(@viewport1)
    далее настройки спрайта (нахожу центр спрайта, прозрачность, наложение, зед), но саму картинку не задаю
    в апдейт пихаю уже картинку, которая имеет название
    filename = "flashlight"
    filename += $гаме_плеер.директион.ту_с
    задаю координаты в апдейте
    @flashlight.(x,y) = $гаме_плеер.скрин_(х,у)
    работает, рад, вышел в меню, крит, открыл дебаг, крит
    кто может помочь с подобным фонариком?
    Спойлер ps: я дико извнияюсь за такое убогое описание, но горит.:

  3. #1283

    По умолчанию

    Скорее всего забываешь уничтожать свой спрайт. Используй @flashlight.dispose в методе dispose. Также советую в update добавить условие изменения картинки, а то игрок может не двигаться, а картинка постоянно будет заново создаваться.

  4. #1284
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    диспоз был, вечерком еще раз напишу что было, может на свежую голову я правильно напишу, ежели, скину сюда.

    upd:
    вроде так было
    PHP код:
    module HB
      FLASHLIGHT 

      BATTARY    
    2
      F_SWITCH   
    90
    end

    class Spriteset_Map
      
      alias hb_create_flashlight initialize
      def initialize
        hb_create_flashlight
        create_flashlight
      end
      def create_flashlight
        
    @flashlight Sprite.new(@viewport1)
        @
    flashlight.opacity 200
        
    @flashlight.blend_type 
        
    @flashlight.297 
        
    @flashlight.ox 150 2
        
    @flashlight.oy 150 2
      end
      
      alias hb_update_flashlight update
      def update
        hb_update_flashlight
        update_flashlight
      end
      def update_flashlight
        
    if $game_switches[HB::F_SWITCH]
          if 
    $game_party.has_item?($data_items[HB::FLASHLIGHT])
            
    filename "flashlight_"
            
    filename += $game_player.direction.to_s
            
    @flashlight.bitmap Cache.system(filenamerescue nil
            
    @flashlight.$game_player.screen_x
            
    @flashlight.$game_player.screen_y 16
          end
        end
      end
      
      alias hb_dispose_flashlight dispose
      def dispose
        hb_dispose_flashlight
        dispose_flashlight
      end
      def dispose_flashlight
        
    @flashlight.dispose
      end  
    end 
    при открытие любой сцены с последующим выходом обратно в игру выдает ошибку строки 35, что-то bitmap=
    если нужно, могу еще и графику прикрепить для теста

    дальше хочу допилить вкл/выкл по клавише и использование батареек, но это уже другая история
    главное пока с этим разобраться
    Последний раз редактировалось HopeBree; 12.10.2015 в 17:32.

  5. #1285

    По умолчанию

    на каком моменте вылетает ошибка ?

    Попробуй что-нибудь в этом роде:
    Спойлер Код:
    Код:
    def update_flashlight
        return if !@flashlight
        return if !$game_switches[HB::F_SWITCH]
        return if !$game_party.has_item?($data_items[HB::FLASHLIGHT])
        return if @last_player_x == $game_player.screen_x && @last_player_y == player.screen_y - 16 # чтобы лишний раз не обновлять
        @last_player_x = $game_player.screen_x
        @last_player_y = player.screen_y - 16
        filename = "flashlight_"
        filename += $game_player.direction.to_s
        @flashlight.bitmap.dispose if @flashlight.bitmap
        @flashlight.bitmap = Cache.system(filename)
        @flashlight.x = @last_player_x
        @flashlight.y = @last_player_y
      end
      
      def dispose_flashlight
        @flashlight.dispose if @flashlight
      end
    Последний раз редактировалось DK; 12.10.2015 в 20:05.

  6. #1286
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    во, теперь отлично
    вылетало обычно после выхода из меню, сцен дебаг и тому подобное, главное из каких то сцен выйти обратно на сцен мап
    осталось реализовать батарейки и кнопку вкл/выкл :3

    ps: $game_ специально пропустил, чтоб глупо не копипастил?
    Последний раз редактировалось HopeBree; 12.10.2015 в 20:48.

  7. #1287

    По умолчанию

    Цитата Сообщение от HopeBree Посмотреть сообщение
    во, теперь отлично
    вылетало обычно после выхода из меню, сцен дебаг и тому подобное, главное из каких то сцен выйти обратно на сцен мап
    осталось реализовать батарейки и кнопку вкл/выкл :3

    ps: $game_ специально пропустил, чтоб глупо не копипастил?
    вылетало, скорее всего, потому что update вызывался раньше, чем твой фонарик создавался...

    P.S. $game_ случайно пропустил)

  8. #1288
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    а вот еще такой момент дефолтные значения фонаря выставил как выключены
    в апдейт добавил следующие
    Код:
        if Keys.trigger?(Keys::F) && @flashlight.visible = true
          Audio.se_play("Audio/SE/" + HB::ONOFFSE, 70, 100)
          @flashlight.visible = false
        elsif Keys.trigger?(Keys::F) && @flashlight.visible = false
          Audio.se_play("Audio/SE/" + HB::ONOFFSE, 70, 100)
          @flashlight.visible = true
        end
    захожу в меню, выхожу, значение визибл принимает исходное значение фолсе

  9. #1289

    По умолчанию

    В условии вместо = пишется ==.
    Keys.trigger?
    Вроде бы Input.trigger?

  10. #1290

    По умолчанию

    Цитата Сообщение от HopeBree Посмотреть сообщение
    а вот еще такой момент дефолтные значения фонаря выставил как выключены
    в апдейт добавил следующие
    Код:
        if Keys.trigger?(Keys::F) && @flashlight.visible = true
          Audio.se_play("Audio/SE/" + HB::ONOFFSE, 70, 100)
          @flashlight.visible = false
        elsif Keys.trigger?(Keys::F) && @flashlight.visible = false
          Audio.se_play("Audio/SE/" + HB::ONOFFSE, 70, 100)
          @flashlight.visible = true
        end
    захожу в меню, выхожу, значение визибл принимает исходное значение фолсе
    Конечно, так как при входе в меню это другая сцена, а при смене сцены сначала диспозятся все спрайты, а когда возвращаешся обратно они создаются заново. Тебе нужно где-то в другом месте хранить состояние фонарика, по которому оно будет восстанавливаться. Например создать переменную в $game_map. Он создается единожды и сохраняется в сейвы.

    Цитата Сообщение от Subzeroy Посмотреть сообщение
    В условии вместо = пишется ==.
    Keys.trigger?
    Вроде бы Input.trigger?
    И да не заметил =) Subzeroy прав, у тебя присваивается, а не сравнивается.
    Последний раз редактировалось Lipton; 13.10.2015 в 09:47.

Страница 129 из 147 ПерваяПервая ... 2979119127128129130131139 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Помощь с скриптами (RGSS)