[Suche] Map per Event zentrieren sodass mehr sichtbar wird und umgekehrt
Hallo liebe Community,
Ich suche nach einem Script womit ich per Event die Map zentrieren kann, sodass man mehr von der Karte sieht, z.B. um eine Übersicht von der Map zu bekommen. Das soll natürlich dann auch wieder zum Ausgangspunkt gebracht werden können (normalzustand).
Ich habe als Beispiel ein Bild gemacht, das natürlich nur schnell und unsauber gemacht wurde.
Es wäre schön wenn man im CallScript einen bestimmten -/+Zoom Faktor einstellen kann und auch die Geschwindigkeit in der sich die Karte vergrößert/verkleintert. Der Spieler soll dabei im Mittelpunkt bleiben
Ich suche nach einem Script womit ich per Event die Map zentrieren kann, sodass man mehr von der Karte sieht, z.B. um eine Übersicht von der Map zu bekommen. Das soll natürlich dann auch wieder zum Ausgangspunkt gebracht werden können (normalzustand).
Ich habe als Beispiel ein Bild gemacht, das natürlich nur schnell und unsauber gemacht wurde.
Es wäre schön wenn man im CallScript einen bestimmten -/+Zoom Faktor einstellen kann und auch die Geschwindigkeit in der sich die Karte vergrößert/verkleintert. Der Spieler soll dabei im Mittelpunkt bleiben
Wie genau meinst du das? Willst du nur ne kleine Ansicht? Oder willst du auf der GEsammtansicht auch laufen können?
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
|
|
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 |
class Game_System attr_accessor :minimap alias_method (:old_initialize, :initialize) def initialize() old_initialize() @minimap = false end end class Scene_Map alias_method(:old_update, :update) def update() old_update() unless Input.trigger?(Input::B) && $game_system.minimap $game_system.minimap = false $game_system.menu_disabled = false end end end module Show_Map def self.complete(events=false) width = $game_map.width height = $game_map.height @minimap = Sprite.new() @minimap.zoom_x = 640.0 / (width * 32) @minimap.zoom_y = 480.0 / (height * 32) @minimap.bitmap = Bitmap.new(width * 32, height * 32) map_pic = RPG::Cache.tileset($game_map.tileset_name) $game_map.width.times do |x| $game_map.height.times do |y| 3.times do |i| x1 = ($game_map.data[x, y, i] - 384) % 8 y1 = ($game_map.data[x, y, i] - 384) / 8 rect = Rect.new(x1*32, y1*32, 32, 32) @minimap.bitmap.blt(x*32, y*32, map_pic, rect) end end end bmp = RPG::Cache.character($data_actors[1].character_name, 0) x = $game_player.x * 32 y = $game_player.y * 32 rect = Rect.new(0, 0, bmp.width / 4, bmp.height / 4) @minimap.bitmap.blt(x, y, bmp, rect) $game_system.menu_disabled = true $game_system.minimap = true if events $game_map.events.each do |i| next if i.nil? bmp = RPG::Cache.character(i[1].character_name, 0) rect = Rect.new(0, 0, bmp.width / 4, bmp.height / 4) @minimap.bitmap.blt(i[1].x * 32, i[1].y * 32, bmp, rect) end end loop do Graphics.update() Input.update() if Input.trigger?(Input::B) break end end @minimap.dispose() end end |
Aufrufbar im Call Script mit...
|
|
Ruby Quellcode |
1 |
Show_Map.complete() |
...(Ohne Eventbilder)
Mit Eventbilder so:
|
|
Ruby Quellcode |
1 |
Show_Map.complete(true) |
Im Spiel verschwindet das Bild mit der Taste Enter.
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
Wenn du das Script gerade ausbesserst: durch dein simples übereinander legen, gehen sämtliche Prioritäten verlohren und es wird nur nach Layer sortiert, ausserdem werden nicht die exakten Frames der Chara-Grafiken genommen was bei SupportEvents mit verschiedenen Grafiken im Set, etwas komisch wirkt. Auch ist die Koordinaten Berechnung der Charas nicht ganz stimmig.
(Achte auf die ox,oy und die Eventseiten Grafik)
Könntest du gleich mit ausbessern. =)
(Achte auf die ox,oy und die Eventseiten Grafik)
Könntest du gleich mit ausbessern. =)
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.
passend wäre das natürlich schon was Playm sagte 
Aber was Frames angeht ist eigentlich total egal.
Es soll nicht EXAKT so aussehen wie die Karte, sondern halt die Events mit dem Ursprungsframe "Nah vorne, bzw. unten schauen"
Sind die Autotiles Animiert muss dies nicht auf der Minimap so aussehen
Nur die aktuelle Charakter+Eventpositionen sollten stimmen

Aber was Frames angeht ist eigentlich total egal.
Es soll nicht EXAKT so aussehen wie die Karte, sondern halt die Events mit dem Ursprungsframe "Nah vorne, bzw. unten schauen"
Sind die Autotiles Animiert muss dies nicht auf der Minimap so aussehen

Nur die aktuelle Charakter+Eventpositionen sollten stimmen
@palym
Hab die Fehler die du jetzt so aufgezählt hast mal alle beseitigt, bis auf das mit der Priorität, was meinst du damit? Also fals es always_on_top war, dass hab ich jetzt beachtet...
ansonsten
@Thema
Hier das verbesserte script:
Kann man noch immer mit dem selben Code aufrufen und es sollte jetzt auch alles funktionieren, bis auf dass die Autotiles nich richtig angezeigt werden, da es zu viel Arbeit/ zu Kompliziert währe es richtig zu machen...
Hab die Fehler die du jetzt so aufgezählt hast mal alle beseitigt, bis auf das mit der Priorität, was meinst du damit? Also fals es always_on_top war, dass hab ich jetzt beachtet...
ansonsten
@Thema
Hier das verbesserte script:
|
|
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 103 104 105 106 107 108 109 110 111 112 113 |
class Game_System attr_accessor :minimap alias_method (:old_initialize, :initialize) def initialize() old_initialize() @minimap = false end end class Scene_Map alias_method(:old_update, :update) def update() old_update() unless Input.trigger?(Input::B) && $game_system.minimap $game_system.minimap = false $game_system.menu_disabled = false end end end class Game_Character attr_accessor :always_on_top end module Show_Map def self.complete(events=false) width = $game_map.width height = $game_map.height @minimap = Sprite.new() @minimap.zoom_x = 640.0 / (width * 32) @minimap.zoom_y = 480.0 / (height * 32) @minimap.bitmap = Bitmap.new(width * 32, height * 32) map_pic = RPG::Cache.tileset($game_map.tileset_name) $game_map.width.times do |x| $game_map.height.times do |y| 3.times do |i| if self.autotile(x, y, i) next end x1 = ($game_map.data[x, y, i] - 384) % 8 y1 = ($game_map.data[x, y, i] - 384) / 8 rect = Rect.new(x1*32, y1*32, 32, 32) @minimap.bitmap.blt(x*32, y*32, map_pic, rect) end end end priority = [] if events $game_map.events.each do |i| next if i.nil? if i[1].always_on_top priority.push(i) next end self.draw_event(i) end priority.each do |i| self.draw_event(i) end end bmp = RPG::Cache.character($data_actors[1].character_name, 0) x = $game_player.x * 32 y = $game_player.y * 32 - (bmp.height / 4 - 32) yy = bmp.height / 4 * ($game_player.direction / 2 - 1) rect = Rect.new(0, yy, bmp.width / 4, bmp.height / 4) @minimap.bitmap.blt(x, y, bmp, rect) $game_system.menu_disabled = true $game_system.minimap = true loop do Graphics.update() Input.update() if Input.trigger?(Input::B) break end end @minimap.dispose() end def self.draw_event(i) rect = 0 bmp = RPG::Cache.character(i[1].character_name, 0) for x in [2, 4, 6, 8] for y in 0..3 unless i[1].direction == x && i[1].pattern == y next end x = (x / 2 - 1) * 32 y = y * 32 rect = Rect.new(x, y, bmp.width / 4, bmp.height / 4) x = i[1].x * 32 y = i[1].y * 32 - (bmp.height / 4 - 32) @minimap.bitmap.blt(x, y, bmp, rect) end end end def self.autotile(x, y, i) return false if $game_map.data[x, y, i] > 383 || $game_map.data[x, y, i] == 0 c = -1 str = nil for ii in [47, 95, 143, 191, 239, 287, 335, 385] next if str != nil c += 1 if ($game_map.data[x, y, i] - 48) < ii str = $game_map.autotile_names[c] end end map_pic = RPG::Cache.autotile(str) rect = Rect.new(32, 64, 32, 32) @minimap.bitmap.blt(x*32, y*32, map_pic, rect) return true end end |
Kann man noch immer mit dem selben Code aufrufen und es sollte jetzt auch alles funktionieren, bis auf dass die Autotiles nich richtig angezeigt werden, da es zu viel Arbeit/ zu Kompliziert währe es richtig zu machen...
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
Der Fehler der anscheinend noch drin ist: ein Bodentile mit Prirität 0, liegt über der Baumkrone (Priorität 5) wenn es auf einem höheren Layer gemappt wurde, und Events liegen sowieso über allem drüber.
Ich rede von der in der Database/Tileset einstellbaren Priorität. Diese wird nicht berücksichtigt.
Wusstest du nicht das man für jedes Tile eine eigenen Priorität einstellen kann? Die zusammen mit der Y Koordinate bestimmt die Z-Koordinate.
Nebenbei: Setzte die Scripte besser in Spoiler, zumindest ich, finde das übersichtlicher.
Um Autotiles anzuzeigen schau dir das Pixelmovement Script oder den Tilemaprewrite an, dort ist die Technik übersichtlich anzusehen.
Ich rede von der in der Database/Tileset einstellbaren Priorität. Diese wird nicht berücksichtigt.
Wusstest du nicht das man für jedes Tile eine eigenen Priorität einstellen kann? Die zusammen mit der Y Koordinate bestimmt die Z-Koordinate.
Nebenbei: Setzte die Scripte besser in Spoiler, zumindest ich, finde das übersichtlicher.
Um Autotiles anzuzeigen schau dir das Pixelmovement Script oder den Tilemaprewrite an, dort ist die Technik übersichtlich anzusehen.
zum Lesen den Text mit der Maus markieren
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Der Fehler der anscheinend noch drin ist: ein Bodentile mit Prirität 0, liegt über der Baumkrone (Priorität 5) wenn es auf einem höheren Layer gemappt wurde, und Events liegen sowieso über allem drüber.
Ich rede von der in der Database/Tileset einstellbaren Priorität. Diese wird nicht berücksichtigt.
Wusstest du nicht das man für jedes Tile eine eigenen Priorität einstellen kann? Die zusammen mit der Y Koordinate bestimmt die Z-Koordinate.
Nebenbei: Setzte die Scripte besser in Spoiler, zumindest ich, finde das übersichtlicher.
Um Autotiles anzuzeigen schau dir das Pixelmovement Script oder den Tilemaprewrite an, dort ist die Technik übersichtlich anzusehen.zum Lesen den Text mit der Maus markieren
Genau das mir aurade aufgefallen.
Das Problem ist nur, das ich die Ebenen ziemlich durcheinander gemacht habe, und es würde alles auf der MiniMap voll komisch aussehen
@palym
Das wusste ich noch nich xD, jetzt schon seit 5 Jahren dabei aba das ist mir noch nie aufgefallen^^, ich editiere es dann wieder hier rein.
Das wusste ich noch nich xD, jetzt schon seit 5 Jahren dabei aba das ist mir noch nie aufgefallen^^, ich editiere es dann wieder hier rein.
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
-
Einsteigerhilfe »-
Hilfe+Erklärung für 2 Eventtypen gesucht
(16. Dezember 2009, 16:33)
-
RGSS 1 Probleme & Talk »-
Text Zentrieren
(17. März 2009, 16:51)
-
Events & Technik »-
Animation per Autostart
(28. März 2008, 10:49)
-
Events & Technik »-
Event Touch nur ausführen wenn das Event beim Player ankommt und nicht umgekehrt..
(14. Januar 2008, 20:02)
-
Einsteigerhilfe »-
Event löschen
(21. Februar 2007, 20:36)
