Плохо! Плохо!:  0
Страница 2 из 7 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 62

Тема: Open RGSS3: Разработка

  1. #11

    По умолчанию

    Код:
    #==============================================================================
    # ** RPG::BaseItem
    #------------------------------------------------------------------------------
    #  Сверхкласс для UsableItem, Item, Weapon, Armor.
    #==============================================================================
    module RPG
      ##
      # Сверхкласс для UsableItem, Item, Weapon, Armor.
      ## 
      class BaseItem
        #==========================================================================
        #                                Атрибуты
        #========================================================================== 
        
        # ID объекта.
        # @return [Integer] 
        attr_accessor :id
        
        # Название объекта.
        # @return [String] 
        attr_accessor :name
        
        # Имя файла иконки объекта.
        # @note Используется в XP.
        # @return [String] 
        attr_accessor :icon_name
        
        # Номер иконки объекта в наборе.
        # @note Используется в VX.
        # @return [Integer] 
        attr_accessor :icon_index
        
        # Описание объекта.
        # @return [String] 
        attr_accessor :description
        
        # Заметки объекта.
        # @note Используется в VX.
        # @return [String] 
        attr_accessor :note
        
        #==========================================================================
        #                                 Методы
        #==========================================================================
        
        ##
        # Инициализирует переменные класса, присваивает им значения по умолчанию
        # @note Вызывается автоматически при создании нового экземпляра
        # @return [NilClass]
        ## 
        def initialize
          @id = 0
          @name = ""
          @icon_name = ""
          @icon_index = 0      
          @description = ""
          @note = ""
        end
        #--------------------------------------------------------------------------
      end
      #----------------------------------------------------------------------------
    end
    #==============================================================================

  2. #12

    По умолчанию

    Код:
    #==============================================================================
    # ** RPG::UsableItem
    #------------------------------------------------------------------------------
    #  Сверхкласс для RPG::Item и RPG::Skill.
    #==============================================================================
    module RPG
      ##
      # Сверхкласс для RPG::Item и RPG::Skill.
      ## 
      class UsableItem < BaseItem
        #==========================================================================
        #                                Атрибуты
        #========================================================================== 
        
        # Название объекта.
        # @return [String] 
        attr_accessor :name
        
        # Область применения.
        # @return [Integer]
        attr_accessor :scope
        
        # Где возможно применение.
        # @note 0: всегда, 1: только в битве, 2: только из меню, 3: никогда.
        # @return [Integer]
        attr_accessor :occasion    
        
        # Коррекция скорости применения.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :speed
        
        # ID анимации эффекта.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :animation_id
        
        # ID анимации применения.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :animation1_id
        
        # ID анимации эффекта.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :animation2_id
        
        # ID вызываемого события.
        # @return [Integer]
        attr_accessor :common_event_id
        
        # Базовый урон.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :base_damage
        
        # Процент разбрасываемого урона.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :variance
        
        # Процент влияния силы атаки эффект.
        # @return [Integer]
        attr_accessor :atk_f
        
        # Процент влияния силы духа на эффект.
        # @note Используется в VX.
        # @return [Integer]
        attr_accessor :spi_f
        
        # Процент влияния уклонения на эффект.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :eva_f
        
        # Процент влияния силы на эффект.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :str_f
        
        # Процент влияния ловкости на эффект.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :dex_f
        
        # Процент влияния скорости на эффект.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :agi_f
        
        # Процент влияния интеллекта на эффект.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :int_f
        
        # Процент влияния физической защиты на эффект.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :pdef_f
        
        # Процент влияния магической защиты на эффект.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :mdef_f
        
        # Вероятность воздействия эффекта.
        # @note Используется в XP.
        # @return [Integer]
        attr_accessor :hit
        
        # Флаг активной опции [Физическая атака]
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :physical_attack
        
        # Флаг активной опции [Повреждение ОМ]
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :damage_to_mp
        
        # Флаг активной опции [Поглащение жизни]
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :absorb_damage
        
        # Флаг активной опции [Игнорирование защиты]
        # @note Используется в VX.
        # @return [Bool]
        attr_accessor :ignore_defense
        
        # Список ID элементов.
        # @return [Array[Integer]]
        attr_accessor :element_set
        
        # Список ID добавляемых состояний.
        # @return [Array[Integer]]
        attr_accessor :plus_state_set
        
        # Список ID снимаемых состояний.
        # @return [Array[Integer]]
        attr_accessor :minus_state_set
        
        #==========================================================================
        #                                 Методы
        #==========================================================================
        
        ##
        # Инициализирует переменные класса, присваивает им значения по умолчанию
        # @note Вызывается автоматически при создании нового экземпляра
        # @return [NilClass]
        ## 
        def initialize
          super
          @scope = 0
          @occasion = 0
          @speed = 0
          @animation_id = 0
          @animation1_id = 0
          @animation2_id = 0
          @common_event_id = 0
          @base_damage = 0
          @variance = 20
          @atk_f = 0
          @spi_f = 0
          @eva_f = 0
          @str_f = 0
          @dex_f = 0
          @agi_f = 0
          @int_f = 0
          @pdef_f = 0
          @mdef_f = 0
          @hit = 0
          @physical_attack = false
          @damage_to_mp = false
          @absorb_damage = false
          @ignore_defense = false
          @element_set = []
          @plus_state_set = []
          @minus_state_set = []
        end
        #--------------------------------------------------------------------------
      end
      #----------------------------------------------------------------------------
    end
    #==============================================================================

  3. #13
    Познающий Аватар для mephis
    Информация о пользователе
    Регистрация
    27.01.2011
    Адрес
    Новосибирск
    Сообщений
    330
    Записей в дневнике
    8
    Репутация: 34 Добавить или отнять репутацию

    По умолчанию

    Кип, тут такой вопрос возник:

    В классе Bitmap у тебя оказалось два перегруженных метода:
    PHP код:
    clear_rect(xywidthheight)
    clear_rect(rect
    Если документация руби не врёт, то в нём запрещена перегрузка функций. Как вариант, можно сделать переменное число параметров, например:
    PHP код:
    clear_rect(*args
    И далее в методе уже сделать проверку на количество параметров.

    Что по этому поводу думаешь?

  4. #14

    По умолчанию

    Справка VX:
    clear_rect(x, y, width, height) (RGSS2)
    clear_rect(rect) (RGSS2)
    Clears this bitmap box or (x, y, width, height) or rect (Rect).
    Перегруженный вариант не тестировал, но сейчас проверю работоспособгность.

    Там же, кстати, перегужены: fill_rect, gradient_fill_rect(

  5. #15
    Познающий Аватар для mephis
    Информация о пользователе
    Регистрация
    27.01.2011
    Адрес
    Новосибирск
    Сообщений
    330
    Записей в дневнике
    8
    Репутация: 34 Добавить или отнять репутацию

    По умолчанию

    Хм, интересно, как они это сделали. Если вот такой код:

    PHP код:
    def foo(x)
      
    p x
    end

    def foo
    (xy)
      
    p x y
    end

    foo
    (10
    выдаёт ошибку о неправильном количестве аргументов.

  6. #16
    Бывалый Аватар для Dark32
    Информация о пользователе
    Регистрация
    30.12.2008
    Адрес
    Арзамас
    Сообщений
    640
    Записей в дневнике
    2
    Репутация: 20 Добавить или отнять репутацию

    По умолчанию

    примерно так
    PHP код:
    def foo(*x)
      
    p x.size == x[0] : x[0]+x[1]
    end

    foo
    (10
    *x - сколь угодно много аргументов, в методе х будет типа массив.

    Вот чёрт, я опять прочитал только последнее сообщение...
    Нужна помощь в скриптах? Запутался? Голова не варит?
    Читал это и это тоже? Не помогло? Тогда тебе сюда!
    Спойлер •••:
    Цитата Сообщение от Реймон
    В мире нет вещей которые нельзя решить с помощью сладостей
    Цитата Сообщение от Ундер
    Ночью можно обойтись и без сладостей...

  7. #17

    По умолчанию

    Цитата Сообщение от Dark32 Посмотреть сообщение
    примерно так
    PHP код:
    def foo(*x)
      
    p x.size == x[0] : x[0]+x[1]
    end

    foo
    (10
    *x - сколь угодно много аргументов, в методе х будет типа массив.

    Вот чёрт, я опять прочитал только последнее сообщение...
    Да, Дарк совершенно прав. Забыл, что и сам так делал в class Object, чтобы можно было передавать и набор параметров и массив:
    Код:
    def any_kind?(*classes)
        classes = classes[0] if classes[0].is_a?(Array)
        for c in classes
          return true if kind_of?(c)
        end
        return false
      end
    Вовремя заметили. Надо поправить.

  8. #18

    По умолчанию

    Там будет что-то вроде:
    Код:
    def clear_rect(*params)
        if params[0].is_a?(Rect)
            x = params[0].x
            y = params[0].y
            width = params[0].width
            height = params[0].height
        else
            x = params[0]
            y = params[1]
            width = params[2]
            height = params[3]
        end
        self.fill_rect(x, y, width, height, Color.new(0, 0, 0, 0))
      end
    Второй вариант, который мне нравится больше:
    Код:
    def clear_rect(x = 0, y = 0, width = self.width, height = self.height)
        if x.is_a?(Rect)
            height = x.height
            width = x.width
            y = x.y
            x = x.x
        end
        self.fill_rect(x, y, width, height, Color.new(0, 0, 0, 0))
      end
    И код короче, и исопльзовать можно без параметров.

    Пишу в блокноте - нет сейчас возможности проверить.

  9. #19
    Познающий Аватар для mephis
    Информация о пользователе
    Регистрация
    27.01.2011
    Адрес
    Новосибирск
    Сообщений
    330
    Записей в дневнике
    8
    Репутация: 34 Добавить или отнять репутацию

    По умолчанию

    Можно и так. А можно совсем кратко:
    Код:
    def clear_rect(*params)
      self.fill_rect(params, Color.new(0, 0, 0, 0))
    end
    upd:
    Сделал —
    Просмотр текущих исходников
    Актуальная документация
    Последний раз редактировалось mephis; 30.07.2011 в 07:17.

  10. #20

    По умолчанию

    Хммммм... а ты проверял? Мне кажется, что params - это массив, и передастся он именно как массив, а не как набор параметров. Ну и для градиентной заливке решение не подойдет.

    Выглядит симпатично! Так держать!
    Последний раз редактировалось Equilibrium Keeper; 30.07.2011 в 11:01.

Страница 2 из 7 ПерваяПервая 1234 ... ПоследняяПоследняя

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

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

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

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

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Open RGSS3: Разработка