04-08-2009, 01:00 PM
Scrolling help window
by Jimmie
Apr 8 2009
(It's the one at the bottom, in case you missed it)
The screenshot pretty much explains itself. This is a window to which you pass the possible commands a player can perform. The window then shows the commands, scrolling if there is not enough space to show them all.
Details
The window uses icons to display the buttons. When you tell the window what commands to display, you send the icon names together with the description like so:
(These are the commands shown in the screenshot. Note that "Change character" has two buttons assigned to it.)
Of course, icons should be in your icons folder.
Installing
Copy the code below into a new script slot above Main. Replace the window skin name on line 10 with the name of one you have. Then in any scene in which you want a help window, you'll have to do a few things.
x, y, width and height can be left out when callin #new. They will default to 0, 448, 640 and 32 respectively.
Caution
This window was not designed to be moved around after creation. If it is, the background will be left behind. If you want this functionality, let me know and I'll add it.
Resources
Here are the icons and window skin I used, in case you want them:
Icons.zip (Size: 7.24 KB / Downloads: 1)
[i]Good luck, have fun!
//Nitt
by Jimmie
Apr 8 2009
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.
No support is given. If you are the owner of the thread, please contact administration.
(It's the one at the bottom, in case you missed it)
The screenshot pretty much explains itself. This is a window to which you pass the possible commands a player can perform. The window then shows the commands, scrolling if there is not enough space to show them all.
Details
The window uses icons to display the buttons. When you tell the window what commands to display, you send the icon names together with the description like so:
Code:
@c_window.set_commands(["CButton", "BButton", "AllArrows", ["LButton", "RButton"]], ["Select item", "Back to menu", "Navigate", "Change character"])
(These are the commands shown in the screenshot. Note that "Change character" has two buttons assigned to it.)
Of course, icons should be in your icons folder.
Installing
Copy the code below into a new script slot above Main. Replace the window skin name on line 10 with the name of one you have. Then in any scene in which you want a help window, you'll have to do a few things.
- Create the window using @aHelpWindow = Window_Scrolling_Help.new(x, y, width, height)
- Assign commands to the window with @aHelpWindow.set_commands(icons, text)
- Update the window every frame using @aHelpWindow.update
- Dispose the window when the scene closes using @aHelpWindow.dispose
x, y, width and height can be left out when callin #new. They will default to 0, 448, 640 and 32 respectively.
Code:
# By Nitt aka jimme reashu
# Can't be bothered to make a proper header for this. I've an item suite to write!
# Version 1.0.0 9 April 2009
class Window_Scrolling_Help < Window_Base
ICON_SIZE = 18
def initialize(x = 0, y = 448, width = 640, height = 32)
super(x-8, y - 16, width + 16, height + 32)
@dummy = Window_Base.new(x, y, width, height)
@dummy.windowskin = RPG::Cache.windowskin("002-Gray01")
self.windowskin = nil
@dummy.z = 1000
self.z = 1001
end
def set_commands(icons, text)
for i in 0...icons.size
if icons[i].is_a?(String)
icons[i] = [icons[i]]
end
end
fulltext = ""
text.each{|a|fulltext << a}
iconnumber = 0
icons.each{|a|iconnumber += a.size}
test_bitmap = Bitmap.new(1,1)
textwidth = test_bitmap.text_size(fulltext).width
fullwidth = textwidth + (ICON_SIZE + 4) * iconnumber + text.size * 32
if fullwidth > self.width - 32
self.contents = Bitmap.new(fullwidth * 2 + 64, self.height - 32)
draw_commands(0, icons, text)
draw_commands(fullwidth + 64, icons, text)
self.ox = -96
else
self.contents = Bitmap.new(self.width - 32, self.height - 32)
draw_commands((self.contents.width - fullwidth)/2, icons, text)
self.ox = 0
end
end
def draw_commands(x, icons, text)
for i in 0...icons.size
for j in 0...icons[i].size
self.contents.blt(x, ((self.height - 32) - ICON_SIZE)/2, RPG::Cache.icon(icons[i][j]), Rect.new(0, 0, ICON_SIZE, ICON_SIZE))
x += ICON_SIZE + 4
end
self.contents.draw_text(x, 0, self.contents.width, self.height - 32, text[i])
x += self.contents.text_size(text[i]).width + 32
end
end
def update
if self.contents.width > self.width - 32
self.ox += 1
if self.ox == self.contents.width/2
self.ox = -32
end
end
end
def dispose
@dummy.dispose
super
end
end
Caution
This window was not designed to be moved around after creation. If it is, the background will be left behind. If you want this functionality, let me know and I'll add it.
Resources
Here are the icons and window skin I used, in case you want them:
Icons.zip (Size: 7.24 KB / Downloads: 1)
[i]Good luck, have fun!
//Nitt