Hello! I was trying to make the cursor move by itself using "Input._currentState.dir". But, I've stumbled upon some problem.
Ex. When I use "Input._currentState.down = true", the cursor will keep going down on its own only when I pressed Down button. Nothing happened when I pressed Up. I want the cursor to insist on moving down even when I pressed Up button.
And this command seems to have a limit in which it cannot repeat the move to go up and down forever. It will go only one direction. Like, if it goes down, it will stay at the bottom and it won't repeat from the top.
If anyone has any ideas how to do this, please share it with me. Thank you!
Hi, Now im assuming you want to select something with in a Window.
each window that Inherits from Window_Selectable has a private property called _index and a function called Select( )
_index is what tells the window cursor where it needs to be. the WindowClass waits for you to press up,down et.c before modifying _index via Select()
Code:
Window_Selectable.prototype.processCursorMove = function() {
if (this.isCursorMovable()) {
var lastIndex = this.index();
if (Input.isRepeated('down')) {
this.cursorDown(Input.isTriggered('down'));
}
if (Input.isRepeated('up')) {
this.cursorUp(Input.isTriggered('up'));
}
if (Input.isRepeated('right')) {
this.cursorRight(Input.isTriggered('right'));
}
if (Input.isRepeated('left')) {
this.cursorLeft(Input.isTriggered('left'));
}
if (!this.isHandled('pagedown') && Input.isTriggered('pagedown')) {
this.cursorPagedown();
}
if (!this.isHandled('pageup') && Input.isTriggered('pageup')) {
this.cursorPageup();
}
if (this.index() !== lastIndex) {
SoundManager.playCursor();
}
}
};
and this is all CursorUp Does.
Code:
Window_Selectable.prototype.cursorUp = function(wrap) {
var index = this.index();
var maxItems = this.maxItems();
var maxCols = this.maxCols();
if (index >= maxCols || (wrap && maxCols === 1)) {
this.select((index - maxCols + maxItems) % maxItems);
}
};
so i think the solution to your problem is to ditch trying to control Input, and instead directly control the window you want using this information.
here is my Pseudo Code example for forcing a window to select the third item if it exist
Code:
var window = SceneManager._scene.menuCommandWindow; //anything to get your window
window.waitFrames = window.waitFrames || 20;
var destinationIndex = 3;
//this part will call everyframe so a For loop will not work, we also should wait for 20 frames
if (window.waitFrames == 0) {
if (window._index < destinationIndex) {
window.cursorDown(); //moves + 1 down -1 for up
window.waitFrames = 20;
}
if (window._index > destinationIndex) {
window.cursorUp(); //moves + 1 down -1 for up
window.waitFrames = 20;
}
if (window._index == destinationIndex) {
window.cursorOk(); //Press Okay
window.waitFrames = 20;
}
}
window.waitFrames--;
if i were you though, id write up a designated function for forcing windows to make cursor Moves, have them update them when a Windows has forced inputs. have some way of queuing up forced cursor Moves so you can literately jump scene to scene without having to reprogram everything.
just a reminder as well that events do not run at all until you exit the menu after calling Open Menu Screen
Shower Thoughts: ". . . Scammers would be OP in the Elder Scrolls. They could just get speech 100 and blatantly ask everyone for all of their money, and everyone would think it's a great investment. And then after being robbed blind, they'd say, with a smile on their face, 'need something?' "
Day #2 for advent is compiled. Please, go to their threads to share love! But, if you wanna talk to me…what’s your favorite Christmas carol or holiday song?
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.