Bilder anzeigen ($)
Hallo Leute.
Ich arbeite gerade an einem XP Projekt, dass ich in kürze vorstellen möchte.
Da ich mich mit RGSS nicht auskenne, und glaube (hoffe), dass meine Vorstellung von vielen hier in wenigen Minuten umgesetzt werden kann,
bitte ich euch um Hilfe.
Ich brauche ein Script, welches per scene_reputation.new aufgerufen werden kann und ein Bild mit den Maßen 640x480 einfadet.
Auf diesem Bild wiederum gibt es acht symetrisch angeordnete freie Plätze, auf welchen wiederum Bilder angezeigt werden.
Jeder Platz kann von jeweils 4 verschiedenen Bildern belegt werden, abhängig von einer jeweiligen ingame Variable.
Zur verdeutlichung hier eine Skizze:
Am besten wäre es, wenn oben als Überschrift, genau mittig, noch ein Text angezeigt werden könnte.
Im Vorraus vielen Dank für alle die helfen!
Ich arbeite gerade an einem XP Projekt, dass ich in kürze vorstellen möchte.
Da ich mich mit RGSS nicht auskenne, und glaube (hoffe), dass meine Vorstellung von vielen hier in wenigen Minuten umgesetzt werden kann,
bitte ich euch um Hilfe.
Ich brauche ein Script, welches per scene_reputation.new aufgerufen werden kann und ein Bild mit den Maßen 640x480 einfadet.
Auf diesem Bild wiederum gibt es acht symetrisch angeordnete freie Plätze, auf welchen wiederum Bilder angezeigt werden.
Jeder Platz kann von jeweils 4 verschiedenen Bildern belegt werden, abhängig von einer jeweiligen ingame Variable.
Zur verdeutlichung hier eine Skizze:
Am besten wäre es, wenn oben als Überschrift, genau mittig, noch ein Text angezeigt werden könnte.
Im Vorraus vielen Dank für alle die helfen!
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Cassim« (18. April 2013, 18:36)
Du scheinst aber auch nur einer zu sein, der nur dann kommt, wenn er was braucht.
Ich werde mich mal dran setzen.
Ich werde mich mal dran setzen.
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
class Window_Reputation < Window_Base GAME_VARIABLE = 0 WINDOW_TITLE = "Text" BITMAPS = [[RPG::Cache.picture("Bitmap 1-1"), RPG::Cache.picture("Bitmap 1-2"), RPG::Cache.picture("Bitmap 1-3"), RPG::Cache.picture("Bitmap 1-4")], [RPG::Cache.picture("Bitmap 2-1"), RPG::Cache.picture("Bitmap 2-2"), RPG::Cache.picture("Bitmap 2-3"), RPG::Cache.picture("Bitmap 2-4")], [RPG::Cache.picture("Bitmap 3-1"), RPG::Cache.picture("Bitmap 3-2"), RPG::Cache.picture("Bitmap 3-3"), RPG::Cache.picture("Bitmap 3-4")], [RPG::Cache.picture("Bitmap 4-1"), RPG::Cache.picture("Bitmap 4-2"), RPG::Cache.picture("Bitmap 4-3"), RPG::Cache.picture("Bitmap 4-4")], [RPG::Cache.picture("Bitmap 5-1"), RPG::Cache.picture("Bitmap 5-2"), RPG::Cache.picture("Bitmap 5-3"), RPG::Cache.picture("Bitmap 5-4")], [RPG::Cache.picture("Bitmap 6-1"), RPG::Cache.picture("Bitmap 6-2"), RPG::Cache.picture("Bitmap 6-3"), RPG::Cache.picture("Bitmap 6-4")], [RPG::Cache.picture("Bitmap 7-1"), RPG::Cache.picture("Bitmap 7-2"), RPG::Cache.picture("Bitmap 7-3"), RPG::Cache.picture("Bitmap 7-4")], [RPG::Cache.picture("Bitmap 8-1"), RPG::Cache.picture("Bitmap 8-2"), RPG::Cache.picture("Bitmap 8-3"), RPG::Cache.picture("Bitmap 8-4")]] class Window_Title < Window_Base def initialize(text) super(220, 5, 200, 50) self.z = 1000 self.contents = Bitmap.new(width - 32, height - 32) set_text(text) end def set_text(text) self.contents.clear() self.contents.draw_text(0, 0, self.contents.width, self.contents.height, text, 1) end end class Window_Kind < Window_Base attr_accessor(:text) def initialize(x, y, id) @id = id super(x, y, 120, 200) self.contents = Bitmap.new(width - 32, height - 32) @text = "test" refresh() end def refresh() self.contents.clear() bmp = BITMAPS[@id][$game_variables[GAME_VARIABLE + @id]] rect1 = Rect.new(0, 0, self.contents.width, self.contents.height) rect2 = Rect.new(0, 0, bmp.width, bmp.height) self.contents.stretch_blt(rect1, bmp, rect2) self.contents.draw_text(0, 0, self.contents.width, 35, @text, 1) end end def initialize() super(0, 0, 640, 480) @window_title = Window_Title.new(WINDOW_TITLE) @window_kinds = [] #Window_Kind.new(30, 45, 0) 4.times do |i| x = 30 + 144 * i y = 30 @window_kinds.push(Window_Kind.new(x, y, i)) y = 260 @window_kinds.push(Window_Kind.new(x, y, i * 2)) end end def update() end end class Scene_Reputation def main() @window_reputation = Window_Reputation.new() loop do Graphics.update() Input.update() update() end end def update() @window_reputation.update() end end |
zum Lesen den Text mit der Maus markieren
Mehr als a Allgäuer ka a Mensch it wera.
Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Reborn« (18. April 2013, 23:26)
Erst mal vielen Dank für deine Hilfe. Ist doch mehr zu schreiben gewesen, als ich dachte...
Ich möchte das Script mit dem "Ring Command Window V1.0" von Fomar0153 nutzen. Vielleicht kennt ihr es.
Jedenfalls habe ich versucht das Script hierfür anzupassen. Erstaunlicher Weise bin ich ziemlich weit gekommen.
Das Fenster öffnet sich sobald ich im Ringmenü auf das entsprechende Symbol klicke. Wenn ich allerdings den
"zurück"-Knopf (in diesem Fall B) betätige bleibt das Fenster für einige Sekunden noch haltbtransparent
bestehen, und geht dann erst weg. Ist bestimmt ne grundsätzliche Kleinigkeit die ich falsch gemacht habe.
Hier das angepasste Script; Ich habe zugefügten Teil blau markiert:
class Window_Reputation < Window_Base
GAME_VARIABLE = 0
WINDOW_TITLE = "Reputation"
BITMAPS = [[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Gloria_Fc"),
RPG::Cache.picture("Basil_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Gloria_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")]]
class Window_Title < Window_Base
def initialize(text)
super(220, 5, 200, 50)
self.z = 1000
self.contents = Bitmap.new(width - 32, height - 32)
set_text(text)
end
def set_text(text)
self.contents.clear()
self.contents.draw_text(0, 0, self.contents.width, self.contents.height, text, 1)
end
end
class Window_Kind < Window_Base
attr_accessor(:text)
def initialize(x, y, id)
@id = id
super(x, y, 120, 200)
self.contents = Bitmap.new(width - 32, height - 32)
@text = "test"
refresh()
end
def refresh()
self.contents.clear()
bmp = BITMAPS[@id][$game_variables[GAME_VARIABLE + @id]]
rect1 = Rect.new(0, 0, self.contents.width, self.contents.height)
rect2 = Rect.new(0, 0, bmp.width, bmp.height)
self.contents.stretch_blt(rect1, bmp, rect2)
self.contents.draw_text(0, 0, self.contents.width, 35, @text, 1)
end
end
def initialize()
super(0, 0, 640, 480)
@window_title = Window_Title.new(WINDOW_TITLE)
@window_kinds = [] #Window_Kind.new(30, 45, 0)
4.times do |i|
x = 30 + 144 * i
y = 30
@window_kinds.push(Window_Kind.new(x, y, i))
y = 260
@window_kinds.push(Window_Kind.new(x, y, i * 2))
end
end
def update()
end
end
class Scene_Reputation
def main()
Graphics.transition
@window_reputation = Window_Reputation.new()
loop do
Graphics.update()
Input.update()
update()
if $scene != self
break
end
end
Graphics.freeze
end
def update()
@window_reputation.update()
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = $scene = Scene_Menu.new(1)
return
@hero.refresh
@stats.refresh
@gold.update
@steps.update
@time.update
@background.ox += 1 if Graphics.frame_count % 2 == 0
@background.oy += 1 if Graphics.frame_count % 2 == 0
end
end
end
Ich möchte das Script mit dem "Ring Command Window V1.0" von Fomar0153 nutzen. Vielleicht kennt ihr es.
Jedenfalls habe ich versucht das Script hierfür anzupassen. Erstaunlicher Weise bin ich ziemlich weit gekommen.
Das Fenster öffnet sich sobald ich im Ringmenü auf das entsprechende Symbol klicke. Wenn ich allerdings den
"zurück"-Knopf (in diesem Fall B) betätige bleibt das Fenster für einige Sekunden noch haltbtransparent
bestehen, und geht dann erst weg. Ist bestimmt ne grundsätzliche Kleinigkeit die ich falsch gemacht habe.
Hier das angepasste Script; Ich habe zugefügten Teil blau markiert:
class Window_Reputation < Window_Base
GAME_VARIABLE = 0
WINDOW_TITLE = "Reputation"
BITMAPS = [[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Gloria_Fc"),
RPG::Cache.picture("Basil_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Gloria_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")],
[RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc"),
RPG::Cache.picture("Hilda_Fc")]]
class Window_Title < Window_Base
def initialize(text)
super(220, 5, 200, 50)
self.z = 1000
self.contents = Bitmap.new(width - 32, height - 32)
set_text(text)
end
def set_text(text)
self.contents.clear()
self.contents.draw_text(0, 0, self.contents.width, self.contents.height, text, 1)
end
end
class Window_Kind < Window_Base
attr_accessor(:text)
def initialize(x, y, id)
@id = id
super(x, y, 120, 200)
self.contents = Bitmap.new(width - 32, height - 32)
@text = "test"
refresh()
end
def refresh()
self.contents.clear()
bmp = BITMAPS[@id][$game_variables[GAME_VARIABLE + @id]]
rect1 = Rect.new(0, 0, self.contents.width, self.contents.height)
rect2 = Rect.new(0, 0, bmp.width, bmp.height)
self.contents.stretch_blt(rect1, bmp, rect2)
self.contents.draw_text(0, 0, self.contents.width, 35, @text, 1)
end
end
def initialize()
super(0, 0, 640, 480)
@window_title = Window_Title.new(WINDOW_TITLE)
@window_kinds = [] #Window_Kind.new(30, 45, 0)
4.times do |i|
x = 30 + 144 * i
y = 30
@window_kinds.push(Window_Kind.new(x, y, i))
y = 260
@window_kinds.push(Window_Kind.new(x, y, i * 2))
end
end
def update()
end
end
class Scene_Reputation
def main()
Graphics.transition
@window_reputation = Window_Reputation.new()
loop do
Graphics.update()
Input.update()
update()
if $scene != self
break
end
end
Graphics.freeze
end
def update()
@window_reputation.update()
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = $scene = Scene_Menu.new(1)
return
@hero.refresh
@stats.refresh
@gold.update
@steps.update
@time.update
@background.ox += 1 if Graphics.frame_count % 2 == 0
@background.oy += 1 if Graphics.frame_count % 2 == 0
end
end
end
zum Lesen den Text mit der Maus markieren
mit dem return verlässt du die Methode, der Rest wird also nicht aufgerufen...
Du musst noch alle bilder disposen, das macht du mit:
@window_title.dispose
@window_kinds.each {|i| i.dispose}
self.dispose # oder nur dispose
theoretisch müsstest du dann noch vor dem Graphics.freeze ein Graphics.update aufrufen
Du musst noch alle bilder disposen, das macht du mit:
@window_title.dispose
@window_kinds.each {|i| i.dispose}
self.dispose # oder nur dispose
theoretisch müsstest du dann noch vor dem Graphics.freeze ein Graphics.update aufrufen
Mehr als a Allgäuer ka a Mensch it wera.
Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren
Also so? Bekomme für jeden einzelnen Befehl die Fehlermeldung "undefined method"
Mir ist leider auch aufgefallen, dass das erste Paar Bilder immer das gleiche Bild anzeigt. Unabhängig davon
was vorher festgelegt wurde immer das Bild des ersteren. Also ganz links oben und unten, die Beiden.
Zitat
class Scene_Reputation
def main()
Graphics.transition
@window_reputation = Window_Reputation.new()
loop do
Graphics.update()
Input.update()
update()
if $scene != self
break
end
end
Graphics.update()
Graphics.freeze
end
def update()
@window_reputation.update()
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = $scene = Scene_Menu.new(1)
@window_title.dispose
@window_kinds.each {|i| i.dispose}
self.dispose # oder nur dispose
return
@hero.refresh
@stats.refresh
@gold.update
@steps.update
@time.update
@background.ox += 1 if Graphics.frame_count % 2 == 0
@background.oy += 1 if Graphics.frame_count % 2 == 0
end
end
end
zum Lesen den Text mit der Maus markieren
Mir ist leider auch aufgefallen, dass das erste Paar Bilder immer das gleiche Bild anzeigt. Unabhängig davon
was vorher festgelegt wurde immer das Bild des ersteren. Also ganz links oben und unten, die Beiden.
oh ja klar, ich habe dir Müll erzählt, self.dispose gehört weg und dafür @window_reputation.dispose
Mehr als a Allgäuer ka a Mensch it wera.
Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren
Ähnliche Themen
-
Skript-Anfragen »-
Bilder vor dem Haupt/Titelmenü anzeigen
(16. Juni 2011, 14:50)
-
Skript-Anfragen »-
Bilder laden
(9. Januar 2011, 13:33)
-
RGSS 1 Probleme & Talk »-
Mehr Bilder auf einmal anzeigen können ??
(8. März 2008, 17:15)
-
Skript-Anfragen »-
Skript um animierte GIF Bilder anzeigen zu lassen?
(20. Januar 2008, 22:39)
-
Eventtechnik Archiv »-
Altes im neuen Glanz erstrahlen lassen.
(11. Dezember 2004, 11:26)
