Плохо! Плохо!:  0
Показано с 1 по 4 из 4

Тема: Движение к герою/от героя по диагонали

  1. #1
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию Движение к герою/от героя по диагонали

    Название плагина: Движение к герою/от героя по диагонали
    Автор: Yuryol
    Версия: крайняя
    Поддерживаемые языки: Русский
    Описание: Простенький плагин, позволяющий двигаться событиям к герою/от героя по диагонали.
    В некоторых плагинах движения по диагонали, события при указании движения "к герою" или "от героя" все-равно ходят по прямой, игнорируя диагональное движение. Данный плагин это исправляет.

    Скриншоты: не требуются

    Плагин скачать по ссылке

    либо скопировать в блокнот, назвать Yuryol_Move_Toward.js:

    Спойлер скопировать:
    Код:
    //=============================================================================
    // Yuryol_Move_Toward.js
    //=============================================================================
    /*:
     
     * @plugindesc Движение к герою/от героя по диагонали / Move 'toward'/'away from' Character
     * @author Yuryol
    
     
     @help
     * Yuryol move 'toward'/'away from' Character (Движение к герою/от героя по диагонали)
     * ----------------------------------------------------------------------------
     * Плагин позволяет двигаться событиям к герою/от героя по диагонали.
     * ----------------------------------------------------------------------------
     * Спасибо ДК, Dmy, Caveman
     * ----------------------------------------------------------------------------
     * 
     
    */
    
    (function() {
    	
    var YuryolMoveTowardCharacter = Game_Character.prototype.moveTowardCharacter;
    Game_Character.prototype.moveTowardCharacter = function(character) {
    	
        var sx = this.deltaXFrom(character.x);
        var sy = this.deltaYFrom(character.y);
    	  
    		if (sx != 0 && sy !=0) {
    		   (sx > 0 && sy > 0) ? this.moveDiagonally(4,8):
    			 (sx > 0 && sy < 0) ? this.moveDiagonally(4,2):
    			 (sx < 0 && sy > 0) ? this.moveDiagonally(6,8):
    			                      this.moveDiagonally(6,2);
    		}
    
    		else if (Math.abs(sx) > Math.abs(sy)) {
            this.moveStraight(sx > 0 ? 4 : 6);
            if (!this.isMovementSucceeded() && sy !== 0) {
                this.moveStraight(sy > 0 ? 8 : 2);
            }
        } else if (sy !== 0) {
            this.moveStraight(sy > 0 ? 8 : 2);
            if (!this.isMovementSucceeded() && sx !== 0) {
                this.moveStraight(sx > 0 ? 4 : 6);
            }
        }
    };
    	
    var YuryolMoveAwayFromCharacter = Game_Character.prototype.moveAwayFromCharacter;
    Game_Character.prototype.moveAwayFromCharacter = function(character) {
    	
        var sx = this.deltaXFrom(character.x);
        var sy = this.deltaYFrom(character.y);
    	
    		if (sx != 0 && sy !=0) {
    			 (sx > 0 && sy > 0) ? this.moveDiagonally(6,2):
    			 (sx > 0 && sy < 0) ? this.moveDiagonally(6,8):
    			 (sx < 0 && sy > 0) ? this.moveDiagonally(4,2):
    			                      this.moveDiagonally(4,8);
    		}
    	
        else if (Math.abs(sx) > Math.abs(sy)) {
            this.moveStraight(sx > 0 ? 6 : 4);
            if (!this.isMovementSucceeded() && sy !== 0) {
                this.moveStraight(sy > 0 ? 2 : 8);
            }
        } else if (sy !== 0) {
            this.moveStraight(sy > 0 ? 2 : 8);
            if (!this.isMovementSucceeded() && sx !== 0) {
                this.moveStraight(sx > 0 ? 6 : 4);
            }
        }
    };
    
    })()

  2. #2
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,776
    Записей в дневнике
    34
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    Почему это до сих пор в самом конструкторе не поправили, вот загадка.
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  3. #3
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Paranoid Посмотреть сообщение
    Почему это до сих пор в самом конструкторе не поправили, вот загадка.
    так там же по сути нет диагонального движения. Получится, что событие идет к игроку по диагонали а герой убежать от него может только по прямой

  4. #4
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,776
    Записей в дневнике
    34
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Yuryol Посмотреть сообщение
    так там же по сути нет диагонального движения. Получится, что событие идет к игроку по диагонали а герой убежать от него может только по прямой
    Галку бы для этого, как с игнорированием препятствий.
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

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

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

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

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

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

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

Ваши права

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