Показано с 1 по 5 из 5

Тема: Создание/изменение скриптов

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Познающий Аватар для Deme
    Информация о пользователе
    Регистрация
    16.05.2014
    Сообщений
    317
    Записей в дневнике
    16
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Спасибо, так задача понятнее!

    [К сожалению, у меня сейчас нет доступа к RM VX Ace: у меня на этом компьютере только Линукс, а RM VX Ace через Wine не запустился. Поэтому то, что я пишу, не проверялось на практике. caveat ēmptor.]

    $game_player — это переменная. Узнать, какого она класса, можно, прочитав $game_player.class или же посмотрев в то место, где она объявлена. Конкретно $game_player в Руби класса Game_Player.

    Этого класса нет в справке по VX Ace (и в rpg-maker-rgss3-1.02.0.gem), потому что это не встроенный класс: он определён в самой игре. Т.е. его можно вообще убрать из игры и заменить чем-то своим (хотя лучше не надо). Его код надо смотреть в Редакторе скриптов VX Ace.

    Соответственно, и доступные функции этого класса нужно смотреть в коде скриптов, которые прилагаются к программе. Их можно посмотреть в самом RPG Maker VX Ace. Так как у меня его под рукой нет, я нагуглил этот скрипт в интернете (правда, с китайскими комментариями, но код тот же).

    Соответственно, в коде скрипта мы и видим, какие тут есть фунции. По коду видно, что clear_transfer_info, refresh, actor, stopping? не принимают ни одного аргумента, а вот check_event_trigger_here и check_event_trigger_there принимают один.

    Однако функции jump_height тут нет — она определена в другом месте. Класс Game_Player расширяет класс Game_Character (это видно в начале файла: class Game_Player < Game_Character), поэтому у него есть все функции Game_Character. Значит, нужно смотреть в код этого класса: вам, вероятнее, будет удобнее смотреть прямо в интерфейсе VX Ace, а я дальше смотрю на китайском сайте.

    jump_height там тоже нету, но зато можно увидеть, что Game_Character расширяет Game_CharacterBase (это видно по строчке «class Game_Character < Game_CharacterBase» в начале). Значит, смотрим на Game_CharacterBase (либо в интерфейсе VX Ace, либо на том же китайском сайте).

    Game_CharacterBase не расширяет никаких классов, значит, все нужные нам методы будут внутри этих трёх классов: Game_Player, Game_Character и Game_CharacterBase.

    Те методы, о которых вы писали, есть в Game_CharacterBase.

    Во-первых, здесь определён balloon_id:

    Код:
    attr_accessor :balloon_id
    Это значит, что нужно обращаться $game_player.balloon_id = 3

    Вроде бы Вы правильно обращаетесь. Проверьте, что не допустили нигде опечатки (типа ballon_id или baloon_id).


    Во-вторых, вот определение jump_height:

    Код:
      def jump_height
        (@jump_peak * @jump_peak - (@jump_count - @jump_peak).abs ** 2) / 2
      end
    Собственно, она не принимает никаких аргументов. Она возвращает рассчитанное число. Чтобы начать прыжок, в Game_Character есть метод jump(x_plus, y_plus) — возможно Вам подойдёт он?
    Последний раз редактировалось Deme; 20.04.2017 в 21:40.
    «quī legis ista, tuam reprehendō, mea laudās // omnia, stultitiam; / nihil, invidiam» (Jōhannis Audoenī)
    'Ты, кто читает это: я порицаю, если ты хвалишь у меня // всё, твою глупость; / если ничего — твою злобу.' (Джон Оуэн)

  2. #2

    По умолчанию

    То, что я писал, это я привел как пример.

    На самом деле я хочу сделать свою боевую систему, как в Super Mario RPG: Legeng of the Seven Stars. (см видео)


    И хотел бы сделать объемный мир, но это не обязательно важно для меня.

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

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

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

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

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

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

Ваши права

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