Ausschnitt eines Bildes anzeigen
Hallo werte Community!
Seit geraumer Zeit brennt mir eine Frage auf den Nägeln, die ich nach langem Suchen und Herumprobieren als nicht autonom lösbar einstufe - und hiermit den Ruby-Meistern des Forums stellen möchte:
Sinnig wäre es (in meinem Kopf), zu den Standardparametern schlicht vier Weitere hinzuzufügen: Rand links, Rand oben, Breite, Höhe.
Der doppelplusedle Megabefehl sähe dann etwa so aus:
Warum aber dieses auf den ersten Blick unnötige Add-On?
Gäbe es einen solchen Befehl, könnte man mit überschaubarem Aufwand sehr eindrucksvolle Tricksereien fabrizieren, beispielsweise Parallaxing-, Fahnen- oder schlicht Welleneffekte - und in Verbindung mit einem Screenshotscript wären der Eikenndie-Phantasie[sic!] bei z.B. Transitions keine Grenzen mehr gesetzt (daher benutze ich auch keine manuell gesplitteten[sic!] Bilder, was natürlich die naheliegendste Lösung wäre - aber ich bin ja ein Flexibitionist).
Wer aus meinen Beschreibungen nicht ganz schlau wird, kann in dieser Edeldemo (GML) begutachten, wie schlüpfrig sich der allseits beliebte Aluxes im Wasser windet (Blasen und Hintergrund sind schmuckes Beiwerk, weil mir langweilig war).
Der Sprite wird hier in 232px*8px große Teilstücke zerlegt, die dann via for-Statement und ein wenig Sinusgeplänkel durch die Gegend geschoben werden.
Über eine(n) Lösung(sansatz) würde ich mich freuen - selbst wenn er/sie bloß daraus besteht, mir zu erklären, dass der RMXP für derlei Spielerein viel zu sperrig und unperformant ist.
Seit geraumer Zeit brennt mir eine Frage auf den Nägeln, die ich nach langem Suchen und Herumprobieren als nicht autonom lösbar einstufe - und hiermit den Ruby-Meistern des Forums stellen möchte:
Gibt es eine halbwegs performante und/oder simple Möglichkeit, nur einen Ausschnitt eines Pictures anzuzeigen?
Sinnig wäre es (in meinem Kopf), zu den Standardparametern schlicht vier Weitere hinzuzufügen: Rand links, Rand oben, Breite, Höhe.
Der doppelplusedle Megabefehl sähe dann etwa so aus:
|
|
Ruby Quellcode |
1 2 3 |
#edel begin $game_screen.pictures[№].show_part(Name, Ursprung, x, y, ZoomX, ZoomY, Alpha, Blendmodus, Links, Oben, Breite, Höhe) #edel end |
Warum aber dieses auf den ersten Blick unnötige Add-On?
Gäbe es einen solchen Befehl, könnte man mit überschaubarem Aufwand sehr eindrucksvolle Tricksereien fabrizieren, beispielsweise Parallaxing-, Fahnen- oder schlicht Welleneffekte - und in Verbindung mit einem Screenshotscript wären der Eikenndie-Phantasie[sic!] bei z.B. Transitions keine Grenzen mehr gesetzt (daher benutze ich auch keine manuell gesplitteten[sic!] Bilder, was natürlich die naheliegendste Lösung wäre - aber ich bin ja ein Flexibitionist).
Wer aus meinen Beschreibungen nicht ganz schlau wird, kann in dieser Edeldemo (GML) begutachten, wie schlüpfrig sich der allseits beliebte Aluxes im Wasser windet (Blasen und Hintergrund sind schmuckes Beiwerk, weil mir langweilig war).
Der Sprite wird hier in 232px*8px große Teilstücke zerlegt, die dann via for-Statement und ein wenig Sinusgeplänkel durch die Gegend geschoben werden.
Über eine(n) Lösung(sansatz) würde ich mich freuen - selbst wenn er/sie bloß daraus besteht, mir zu erklären, dass der RMXP für derlei Spielerein viel zu sperrig und unperformant ist.
Gruß & Danke, Shabz
„Albrecht Dürer, geboren 1471, gestorben 1530.
Der Nürnberger Maler, der ganz Europa faszinierte; mit seinem scharfen Auge, seiner Meisterschaft in Linienführung und Plastizität, sowie seiner Leihwagenfirma.“
Der Nürnberger Maler, der ganz Europa faszinierte; mit seinem scharfen Auge, seiner Meisterschaft in Linienführung und Plastizität, sowie seiner Leihwagenfirma.“
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Shabraxxx« (16. Oktober 2013, 19:07)
Pictures werden im RMXP durch die Klasse Sprite_Picture auf dem Bidlschirm angezeigt, diese Klasse ist eine Subklasse von Sprite, und wie wir in Scientia sehen, gibt es bereits eine Methode Sprite#src_rect. (Sidefact: Diese Methode wird für die Character Grafiken verwendet.)
Du kannst also bei der Methode Game_Picture#show einfach ein Rect als optionalen Parameter ergänzen:
Jetzt muss nurnoch die Sprite_Picture Instanz darauf reagieren, mir würde da soetwas wie der folgenden Scriptschnippsel als Lösung vorschweben:
Aber Du solltest an dem Punkt genug Anregung haben, selbst weiter zu kommen (vielleicht reicht dir auch schon das bisherige Script
).
Du kannst also bei der Methode Game_Picture#show einfach ein Rect als optionalen Parameter ergänzen:
|
|
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 |
#============================================================================== # ** Game_Picture #============================================================================== class Game_Picture #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :src_rect #-------------------------------------------------------------------------- # * Show Picture # name : file name # origin : starting point # x : x-coordinate # y : y-coordinate # zoom_x : x directional zoom rate # zoom_y : y directional zoom rate # opacity : opacity level # blend_type : blend method # src_rect : src_rect for Sprite (optional) #-------------------------------------------------------------------------- alias_method(:org_show_wo_srcrct, :show) def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type, src_rect=nil) org_show_wo_srcrct(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) @src_rect = src_rect end end |
zum Lesen den Text mit der Maus markieren
Jetzt muss nurnoch die Sprite_Picture Instanz darauf reagieren, mir würde da soetwas wie der folgenden Scriptschnippsel als Lösung vorschweben:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#============================================================================== # ** Sprite_Picture #============================================================================== class Sprite_Picture < Sprite #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- alias_method(:org_update_wo_srcrct, :update) def update org_update_wo_srcrct unless self.bitmap.nil? if @picture.src_rect.nil? @picture.src_rect = Rect.new(0,0,bitmap.width, bitmap.height) end self.src_rect = @picture.src_rect if src_rect != @picture.src_rect end end end |
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.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Playm« (16. Oktober 2013, 21:07) aus folgendem Grund: Fehler im Skript korrigiert
Das ging ja fix, Playm - und funktioniert einwandfrei!
Zur Belustigung all derjeniger, die interessiert, wie man dieses Edeladdon verwenden kann, habe ich mal auf die Schnelle eine kleine Demo gebastelt - nichts Spektakuläres, aber es funktioniert:
Soweit wars das von meiner Seite; falls noch Fragen und/oder Anregungen da sind, nur zu!
P.S.: Demo veredelt.
|
|
Ruby Quellcode |
1 |
dank**10 |
Zur Belustigung all derjeniger, die interessiert, wie man dieses Edeladdon verwenden kann, habe ich mal auf die Schnelle eine kleine Demo gebastelt - nichts Spektakuläres, aber es funktioniert:
Gefakete[sic?] "Realtime-Reflexion" im RMXP.
Vielleicht eine ganz putzige Idee für mapbasierte Titelscreens.

Vielleicht eine ganz putzige Idee für mapbasierte Titelscreens.
Soweit wars das von meiner Seite; falls noch Fragen und/oder Anregungen da sind, nur zu!
Gruß & Danke, Shabz
P.S.: Demo veredelt.
„Albrecht Dürer, geboren 1471, gestorben 1530.
Der Nürnberger Maler, der ganz Europa faszinierte; mit seinem scharfen Auge, seiner Meisterschaft in Linienführung und Plastizität, sowie seiner Leihwagenfirma.“
Der Nürnberger Maler, der ganz Europa faszinierte; mit seinem scharfen Auge, seiner Meisterschaft in Linienführung und Plastizität, sowie seiner Leihwagenfirma.“
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Shabraxxx« (21. Oktober 2013, 01:16)
Ähnliche Themen
-
Events & Technik »-
Name in Textbox
(19. Juli 2013, 19:20)
-
Einsteigerhilfe »-
Standartgröße in Pixeln eines Bildes beim VX -> ???
(31. Dezember 2011, 13:21)
-
Skript-Anfragen »-
Starten des Spiels
(17. August 2011, 02:49)
-
RGSS 1 Probleme & Talk »-
picture anzeigen
(8. Mai 2007, 11:34)
-
RGSS 1 Probleme & Talk »-
picture anzeigen
(8. Mai 2007, 11:34)
