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

Тема: Много вопросов по JavaScript

  1. #11
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Не мне красиво хочется сделать и рисовать вот на таких 2х окошках
    Курсач_1.PNG
    Тем более что прогресс бар можно рисовать способом мейкера также как он сам рисует проблема чтобы вывести 2 а не 1 такое окошко.
    Можно конечно через 2 плагина сделать тобишь 1 для игрока другой для боса но лучше через 1 скрипт. В моем примере И на скриншоте это мой скрипт но там рисуется одно окошко. Вот сам скрипт
    Код:
    //=============================================================================
    // PointsOnMap.js
    //=============================================================================
    
    /*:
     * @plugindesc Отображает на экране количество очков которые нужно набрать
     * @author Alexandr_7
     * @param enableSwitchId
     * @desc Показать/Скрыть (номер переключателя)
     * @default 1
     * @param itemVarId
     * @desc Иконка предмета (номер переменной)
     * @default 0
     * @param IconNotCompletedId
     * @desc ИД иконки если значения 2х переменных не совпадают
     * @default 0
     * @param IconCompletedId
     * @desc ИД иконки если значения 2х переменных совпадают
     * @default 228
     * @param countVarId
     * @desc Количество очков (номер переменной)
     * @default 2
     * @param countMaxVarId
     * @desc Максимальное количество очков (номер переменной)
     * @default 3
     */
     
    //Главная функция обработки
    (function() {
    	//Переменная параметров скрипта
    	var parameters = PluginManager.parameters('PointsOnMap');
    	
    	//Объявление переменных параметров объявленных выше
    	var enableSwitchId = Number(parameters['enableSwitchId']);
    	var itemVarId = Number(parameters['itemVarId']);
    	var IconNotCompletedId = Number(parameters['IconNotCompletedId']);
    	var IconCompletedId = Number(parameters['IconCompletedId']);
    	var countVarId = Number(parameters['countVarId']);
    	var countMaxVarId = Number(parameters['countMaxVarId']);
    	
    	//Создание копии основной функции
    	var _Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows;
    	//Заменяем основную функцию своей
    	Scene_Map.prototype.createAllWindows = function() {
    		//Вызов настоящей функции для отрисовки игрового окна
    		_Scene_Map_createAllWindows.call(this);
    		//Отображаем свое окошщко внутри игрового окна
    		this._pointsOnMap = new PointsOnMap(Graphics.boxWidth - 298,10, 288, 60);
    		this.addWindow(this._pointsOnMap);
    	};
    	
    	//---------------------------------------
    		
    	function PointsOnMap() {
    		this.initialize.apply(this, arguments);
    	}
    		
    	PointsOnMap.prototype = Object.create(Window_Base.prototype);
    	PointsOnMap.prototype.constructor = PointsOnMap;
    		
    	PointsOnMap.prototype.standardPadding = function() {
    		return 0;
    	};
    		
    	PointsOnMap.prototype.initialize = function(x, y, width, height) {
    		Window_Base.prototype.initialize.call(this, x, y, width, height);
    		this._id = 1;
    	};
    		
    	PointsOnMap.prototype.update = function() {
    		this.contents.clear();
    		if ($gameSwitches.value(enableSwitchId)) {
    			this.show();
    			this.resetTextColor();
    			var itemId = $gameVariables.value(itemVarId);
    			
    			if (itemId > 0) {
    				this.drawIcon(itemId, 15, 15);
    			}
    			var outText = $gameVariables.value(countVarId) + " / " + $gameVariables.value(countMaxVarId);
    			if ( IconNotCompletedId > 0 && $gameVariables.value(countVarId) < $gameVariables.value(countMaxVarId) ) {
    				this.drawIcon(IconNotCompletedId, 288-32-15, 15);
    			}
    			if ( IconCompletedId > 0 && $gameVariables.value(countVarId) >= $gameVariables.value(countMaxVarId) ) {
    				this.drawIcon(IconCompletedId, 288-32-15, 15);
    			}
    			this.drawTextEx(outText, (288 / 2) - (this.textWidth(outText) / 2), 15);
    		} else {
    			this.hide();
    		}
    	}
    	
    })();
    Вообще я бы и не писал плагины. Факт в том что я делаю игру для курсовой и диплома а код там обязательно нужно писать. И писать самому или брать чужое и переделывать под себя.
    Последний раз редактировалось Alexandr_7; 16.09.2017 в 15:31.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

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

    По умолчанию

    Цитата Сообщение от Alexandr_7 Посмотреть сообщение
    Не мне красиво хочется сделать и рисовать вот на таких 2х окошках
    Курсач_1.PNG
    Тем более что прогресс бар можно рисовать способом мейкера также как он сам рисует проблема чтобы вывести 2 а не 1 такое окошко.
    Можно конечно через 2 плагина сделать тобишь 1 для игрока другой для боса но лучше через 1 скрипт. В моем примере И на скриншоте это мой скрипт но там рисуется одно окошко. Вот сам скрипт
    Код:
    //=============================================================================
    // PointsOnMap.js
    //=============================================================================
    
    /*:
     * @plugindesc Отображает на экране количество очков которые нужно набрать
     * @author Alexandr_7
     * @param enableSwitchId
     * @desc Показать/Скрыть (номер переключателя)
     * @default 1
     * @param itemVarId
     * @desc Иконка предмета (номер переменной)
     * @default 0
     * @param IconNotCompletedId
     * @desc ИД иконки если значения 2х переменных не совпадают
     * @default 0
     * @param IconCompletedId
     * @desc ИД иконки если значения 2х переменных совпадают
     * @default 228
     * @param countVarId
     * @desc Количество очков (номер переменной)
     * @default 2
     * @param countMaxVarId
     * @desc Максимальное количество очков (номер переменной)
     * @default 3
     */
     
    //Главная функция обработки
    (function() {
    	//Переменная параметров скрипта
    	var parameters = PluginManager.parameters('PointsOnMap');
    	
    	//Объявление переменных параметров объявленных выше
    	var enableSwitchId = Number(parameters['enableSwitchId']);
    	var itemVarId = Number(parameters['itemVarId']);
    	var IconNotCompletedId = Number(parameters['IconNotCompletedId']);
    	var IconCompletedId = Number(parameters['IconCompletedId']);
    	var countVarId = Number(parameters['countVarId']);
    	var countMaxVarId = Number(parameters['countMaxVarId']);
    	
    	//Создание копии основной функции
    	var _Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows;
    	//Заменяем основную функцию своей
    	Scene_Map.prototype.createAllWindows = function() {
    		//Вызов настоящей функции для отрисовки игрового окна
    		_Scene_Map_createAllWindows.call(this);
    		//Отображаем свое окошщко внутри игрового окна
    		this._pointsOnMap = new PointsOnMap(Graphics.boxWidth - 298,10, 288, 60);
    		this.addWindow(this._pointsOnMap);
    	};
    	
    	//---------------------------------------
    		
    	function PointsOnMap() {
    		this.initialize.apply(this, arguments);
    	}
    		
    	PointsOnMap.prototype = Object.create(Window_Base.prototype);
    	PointsOnMap.prototype.constructor = PointsOnMap;
    		
    	PointsOnMap.prototype.standardPadding = function() {
    		return 0;
    	};
    		
    	PointsOnMap.prototype.initialize = function(x, y, width, height) {
    		Window_Base.prototype.initialize.call(this, x, y, width, height);
    		this._id = 1;
    	};
    		
    	PointsOnMap.prototype.update = function() {
    		this.contents.clear();
    		if ($gameSwitches.value(enableSwitchId)) {
    			this.show();
    			this.resetTextColor();
    			var itemId = $gameVariables.value(itemVarId);
    			
    			if (itemId > 0) {
    				this.drawIcon(itemId, 15, 15);
    			}
    			var outText = $gameVariables.value(countVarId) + " / " + $gameVariables.value(countMaxVarId);
    			if ( IconNotCompletedId > 0 && $gameVariables.value(countVarId) < $gameVariables.value(countMaxVarId) ) {
    				this.drawIcon(IconNotCompletedId, 288-32-15, 15);
    			}
    			if ( IconCompletedId > 0 && $gameVariables.value(countVarId) >= $gameVariables.value(countMaxVarId) ) {
    				this.drawIcon(IconCompletedId, 288-32-15, 15);
    			}
    			this.drawTextEx(outText, (288 / 2) - (this.textWidth(outText) / 2), 15);
    		} else {
    			this.hide();
    		}
    	}
    	
    })();
    Вообще я бы и не писал плагины. Факт в том что я делаю игру для курсовой и диплома а код там обязательно нужно писать. И писать самому или брать чужое и переделывать под себя.
    что значит "красивенько"? ты считаешь что набросок кода сделанный спецом для тебя я должен сделать еще и красивым? уж извини,нет времени.
    1-ое. Ничто не мешает сделать красивенько.
    2-ое. Ничто не мешает нарисовать окошко битмапой. Если посмотришь код мукера то увидишь что окна мейкера рисуются теми же битмапами, функцией blt. Можешь тупо скопировать эту функцию и вставить в плагин
    3-е. Попробуй сделать окошки разными функициями точно также как я сделал вставку картинок через разные функции.

    Разбираться в твоем коде я не буду так как еще не разбирался в окнах плюс нет времени

  3. #13
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Yuryol Посмотреть сообщение
    что значит "красивенько"? ты считаешь что набросок кода сделанный спецом для тебя я должен сделать еще и красивым? уж извини,нет времени.
    1-ое. Ничто не мешает сделать красивенько.
    2-ое. Ничто не мешает нарисовать окошко битмапой. Если посмотришь код мукера то увидишь что окна мейкера рисуются теми же битмапами, функцией blt. Можешь тупо скопировать эту функцию и вставить в плагин
    3-е. Попробуй сделать окошки разными функициями точно также как я сделал вставку картинок через разные функции.

    Разбираться в твоем коде я не буду так как еще не разбирался в окнах плюс нет времени
    Ну во первых я не прошу делать тебя все за меня имя и прогресс бар я сделаю сам

    Во вторых вставка картинки то код что я выслал выше то там используется стандартное окно стилем Window.png
    Ну и на счет кода что выше. Я чет не похоже чтобы это была переменная
    Код:
    this._pointsOnMap
    this я знаю что означает но то то после него?
    Так как именно это выводит окошко. Или это все же имя переменной
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  4. #14
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Код:
    //=============================================================================
    // LevelsBoss.js
    //=============================================================================
    
    /*:
     * @plugindesc xfgdfg
     * @author Alexandr_7
     * @param enableSwitchId
     * @desc Показать/Скрыть (номер переключателя)
     * @default 2
     */
     
    (function() 
    {
    	var Face_Player_Width = 100;
    	var Face_Player_Height = 100;
    	
    	var Window_Player_Width = 292;
    	var Window_Player_Height = 120;
    	
    	var parameters = PluginManager.parameters('LevelsBoss');
    	
    	var enableSwitchId = Number(parameters['enableSwitchId']);
    	
    	var _Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows;
    	Scene_Map.prototype.createAllWindows = function()
    	{
    		_Scene_Map_createAllWindows.call(this);
    		
    		this.face_hud = new FACE_hud();
    		this.addChild(this.face_hud);
    		
    		this._levelsBoss_Player = new LevelsBossPlayer(5, 5, Window_Player_Width, Window_Player_Height);
    		//this._levelsBossEnemies = new LevelsBossEnemies(Graphics.boxWidth - 298,10, 392, 120);
    		this.addWindow(this._levelsBoss_Player);
    		//this.addWindow(this._levelsBossEnemies);
    	};
    	
    	/*
    	*******************
    	Окно для игрока
    	*******************
    	*/
    	
    
    	function LevelsBossPlayer() {
    		this.initialize.apply(this, arguments);
    	};
    	
    	LevelsBossPlayer.prototype = Object.create(Window_Base.prototype);
    	LevelsBossPlayer.prototype.constructor = LevelsBossPlayer;
    		
    	LevelsBossPlayer.prototype.standardPadding = function() {
    		return 0;
    	};
    	
    	LevelsBossPlayer.prototype.initialize = function(x, y, width, height) {
    		Window_Base.prototype.initialize.call(this, x, y, width, height);
    		this.update();
    	};
    	
    	LevelsBossPlayer.prototype.update = function() {
    		this.contents.clear();
    		if ($gameSwitches.value(enableSwitchId) == true) {
    			this.show();
    			this.resetTextColor();
    			this.drawTextEx("fdgdfgd", 10 + Face_Player_Width + 5, 15);
    		} else {
    			this.hide();
    		}
    	};
    	
    	/*
    	*******************
    	FACE hud
    	*******************
    	*/
    	
    	function FACE_hud() {
    		this.initialize.apply(this, arguments);
    	};
    
    	FACE_hud.prototype = Object.create(Sprite.prototype);
    	FACE_hud.prototype.constructor = FACE_hud;
    
    	FACE_hud.prototype.initialize = function () {
    		Sprite.prototype.initialize.call(this);
    		this.x = 10;
    		this.y = 10;
    		this.bitmap = new Bitmap(Face_Player_Width, Face_Player_Height);
    		this.update();    
    	};
    
    	FACE_hud.prototype.update = function() {
    		if ($gameSwitches.value(enableSwitchId) == true) {
    			this.drawIcon($gameParty.members()[0].faceName(),$gameParty.members()[0].faceIndex(), 5, 15, Face_Player_Width, Face_Player_Height);
    		}
    	};
    
    	FACE_hud.prototype.drawIcon = function(faceName,index, x, y, w, h) {
    		if (!this.bitmap) return false;
    		var bitmap = ImageManager.loadFace(faceName);
    		var pw = Window_Base._faceWidth;
    		var ph = Window_Base._faceHeight;
    		var sx = index%4*pw;
    		var sy = Math.floor(index/4)*pw;
    		this.bitmap.blt(bitmap,sx,sy,pw,ph,x,y, w, h);
    		return true;
    	}
    	
    })();
    Мне интересно можно ли вывести фейс игрока не создавая при этом нового объекта и функции обновления этого объекта тобишь делать отрисовку прям в LevelsBossPlayer
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  5. #15
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Сам допер как это сделать
    Код:
    LevelsBossPlayer.prototype.update = function() {
    		this.contents.clear();
    		if ($gameSwitches.value(enableSwitchId) == true) {
    			this.show();
    			this.drawFace($gameParty.members()[0].faceName(),$gameParty.members()[0].faceIndex(), 5, 10, Face_Player_Width, Face_Player_Height);
    			this.resetTextColor();
    			this.drawTextEx("fdgdfgd", 10 + Face_Player_Width + 5, 15);
    		} else {
    			this.hide();
    		}
    		
    	};
    	
    	LevelsBossPlayer.prototype.drawFace = function(faceName, faceIndex, x, y, width, height) {
    		var bitmap = ImageManager.loadFace(faceName);
    		var pw = Window_Base._faceWidth;
    		var ph = Window_Base._faceHeight;
    		
    		var sx = faceIndex % 4 * pw;
    		var sy = Math.floor(faceIndex / 4) * pw;
    		this.contents.blt(bitmap, sx, sy, pw, ph, x, y, width, height);
    	};
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  6. #16
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Так. Подскажите пожалуйста как значение переменной перевести в индекс персонажа или индекс ивента
    Пытаюсь так но вызывает ошибку
    $gameVariables.value(IndexPlayerVarID)
    Последний раз редактировалось Alexandr_7; 17.09.2017 в 19:10.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  7. #17
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Короче я разобрался. Но вот что никак не пойму так это
    width = width || 186;
    || - Это логическое или
    Вот не понятно width = width или 186
    это как понимать?
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  8. #18
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    И еще вопрос
    Вот переназначение функции идет
    Код:
    var _Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows;
    	Scene_Map.prototype.createAllWindows = function()
    	{
    		_Scene_Map_createAllWindows.call(this);
    		
    		this._levelsOfBoss_Player = new LevelsOfBossPlayer(5, 5, Window_Player_Width, Window_Player_Height);
    		//this._levelsBossEnemies = new LevelsBossEnemies(Graphics.boxWidth - 298,10, 392, 120);
    		this.addWindow(this._levelsOfBoss_Player);
    		//this.addWindow(this._levelsBossEnemies);
    	};
    Scene_Map.prototype.createAllWindows происходит 1 раз или каждый кадр
    например если сделать анимацию выдвигание этого окошка здесь. Здесь это возможно или нет?
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

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

    По умолчанию

    Цитата Сообщение от Alexandr_7 Посмотреть сообщение
    И еще вопрос
    Вот переназначение функции идет
    Код:
    var _Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows;
    	Scene_Map.prototype.createAllWindows = function()
    	{
    		_Scene_Map_createAllWindows.call(this);
    		
    		this._levelsOfBoss_Player = new LevelsOfBossPlayer(5, 5, Window_Player_Width, Window_Player_Height);
    		//this._levelsBossEnemies = new LevelsBossEnemies(Graphics.boxWidth - 298,10, 392, 120);
    		this.addWindow(this._levelsOfBoss_Player);
    		//this.addWindow(this._levelsBossEnemies);
    	};
    Scene_Map.prototype.createAllWindows происходит 1 раз или каждый кадр
    например если сделать анимацию выдвигание этого окошка здесь. Здесь это возможно или нет?
    эм.что мешает проверить?

  10. #20
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Уже выяснил. Происходит только 1 раз. Мда.
    У кого есть идеи как это реализовать. Хотя вот например LevelsOfBossPlayer.prototype.update = function() {
    обновляется каждый кадр.
    Может сам скрипт обновляется каждый кадр. Если так это неловко с учетом того что переменная уже не может уменьшаться
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

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

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

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

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

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

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

Ваши права

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