[RGSS] Eigener HUD

Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Samstag, 16. Juni 2007, 02:26

Eigener HUD

RGSS: Eigener HUD
[Beschreibung: HUD]


1. Einleitung:

Der wohl beste Einstieg in RGSS. Jeder der ein bischen was von RGSS versteht hat sich schon mal ein kleines Fenster (wofür auch immer) selber gebaut.
Da es aber bestimmt noch nicht jeder kennt, werde ich mal ein Codebeispiel eines solchen HUD's erklären.
In diesem Tutorial gehe ich aber nicht in jedes Detail. Sytaxgrundlagen und der gleichen lasse ich ebenfalls ausfallen. Diese Infos sollten bereits bekannt sein bzw. solltet ich euch woanders her holen.

2. Das eigentliche Fenster

Ich zeige euch zuerst den Kompletten Code und erkläre dann Schritt für Schritt und Zeile für Zeile.
[button=Code]

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
class HP_HUD < Window_Base
 def initialize(actor=0)
  super(0, 0, 180, 85)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 155
    @actor = $game_party.actors[actor]
    refresh
  end
 
  def refresh
    @old_hp = @actor.hp
    @old_sp = @actor.sp
    self.contents.clear
    self.contents.font.color = Color.new(200, 224, 255, 255)
    self.contents.draw_text(-1, -7, 180, 32, "HP: #{@actor.hp} | #{@actor.maxhp}")
    self.contents.draw_text(-1, 25, 180, 32, "SP: #{@actor.sp} | #{@actor.maxsp}")
  end
 
  def update
    if @actor.hp != @old_hp or @actor.sp != @old_sp
      refresh
    end
    super
  end
end
[/button]
(Wie das Ergebnis aussieht kannst du im Anhang sehen)
Wir fangen aber gleich ohne Umwege beim eigentlichen Code für das Fenster an. Wir bauen uns jetzt ein kleines Fenster wo die HP & SP des Helden stehen.
Also fangen wir ganz vorne an, nämlich den Klassennamen. Ich nenne das ganze mal HP_HUD:

Ruby Quellcode

1
class HP_HUD < Window_Base

Beim Namen gibt es nicht so viel zu beachten, außer das der erste Buchstaben ein Großbuchstabe sein muss.
Da wir nicht gleich das Rad neu erfinden wollen, greifen wir auf vom Maker gegebene Methoden zurück und definieren deshalb "Window_Base" als Superklasse.
Erst damit wird das erstellen eines Bitmaps möglich.

Ruby Quellcode

1
def initialize(actor=0)

Zuerst definieren wir die initialize Methode. Diese Methode wird fast immer aufgerufen, wenn eine neue Klasse erstellt wird. Wie der Name verrät benutzen wir es zum Initialisieren. Hinten dran hab ich noch einen Parameter gehangen, damit man den Helden dem die HP gehören kann ändern kann.
Parameter sind Variablen die beim Aufruf übergeben. Dazu geben wir dem Parameter noch einen Standardwert, falls man keinen Parameter mit übergibt. In diesem Fall ist das die 0.

Ruby Quellcode

1
super(0, 0, 170, 85)

Der Befehl super ruft die Initialize Methode unser gewählten Superklasse auf. In diesem Fall also die von Window_Base.
Über die Parameter können wir die Größe des erstellten Fensters bestimmen. Der Aufbau lautet wie folgt:

Ruby Quellcode

1
super(x, y, width, height)


Ruby Quellcode

1
self.contents = Bitmap.new(width - 32, height - 32)

Erzeugt das eigentliche Bitmap welches man später selber beschreiben kann. Die Größe nimmt es sich aus den Parametern die ihr eine Zeile drüber selber übergeben habt. Die -32 sind damit es keine Komplikationen mit dem Rand des Bitmaps gibt. Im Normalfall könnt ihr diese Zeile so lassen wie sie ist.

Ruby Quellcode

1
self.back_opacity = 155

Damit setzen wir die Tranzparens des Fensters. Mit back_opacity ändern wir nur die Tranzparens des inneren Bildes. Meiner Meinung nach am schickesten.
Der Wert kann von 0 (nicht Sichtbar) bis 255 (Undurchsichtig) gesetzt werden. Zusätzlich gibt es noch andere Opacity angaben.

Ruby Quellcode

1
2
self.opacity = 155
self.contents_opacity = 155

Bei "opacity" wird der komplette Hintergrund (also auch der Rahmen) Transparent.
Bei "contents_opacity" wird nur der Inhalt (z.B. die Schrift) Transparent.

Ruby Quellcode

1
@actor = $game_party.actors[actor]

Nun setzen wir die Instanzvariable @actor gleich den Werten des ausgewählten Heros. $game_party.actors ist ein vom Maker vorgegebener Array der die aktuelle Party enthält. Wie alle Arrays beginnt der Index bei 0. Den Index erhält er vom übergebenen Parameter.

Ruby Quellcode

1
refresh

Damit wir das Fenster auch gleich nach dem Aufruf mit Inhalt füllen, rufen wir hier schon mal die refresh Methode auf, die ich jetzt erklären werden.

Ruby Quellcode

1
def refresh


Zuerst mal wieder ganz normal der Definitionsname.

Ruby Quellcode

1
2
@old_hp = @actor.hp
@old_sp = @actor.sp

Hier speichern wir die aktuellen HP und SP Werte. Warum erfahrt ihr nachher.

Ruby Quellcode

1
self.contents.clear

In dieser Zeile leeren wir erstmal das komplette Fenster von jeglichem Inhalt. Sonst würde der Text bei jedem refresh Aufruf überlappen.

Ruby Quellcode

1
self.contents.font.color = Color.new(200, 224, 255, 255)

Hier können wir die Schriftfarbe auswählen. Dies geschiet mit Color.new und den Parametern die in RGB Werten angegeben werden.
Sprich Rot, Grün, Blau Werten, jeweils von 0-255.Der Alpha Wert gibt die Tranzparens an.

Ruby Quellcode

1
Color.new(Rotanteil, Grünanteil, Blauanteil, Tranzparens)


Ruby Quellcode

1
2
self.contents.draw_text(-1, -7, 120, 32, "HP: #{@actor.hp} | #{@actor.maxhp}")
self.contents.draw_text(-1, 25, 180, 32, "SP: #{@actor.sp} | #{@actor.maxsp}")

Nun füllen wir das Fenster endlich mit Inhalt. Dazu benutzen wir die draw_text Methode. Diese Methode hat folgende Parameter:

Ruby Quellcode

1
self.contents.draw_text(x, y, width, height, string, align[optional])

Um einen String mit Variablen zu füllen benutze ich am liebsten den Aufbau mit #{}. Dabei muss man Zahlenvariablen nicht erst in Strings umwandeln. z.B.

Ruby Quellcode

1
text = "Variabel 1 = #{$game_variables[1]}"

Man könnte das zwar auch mit einem ".to_s" und einem "+" Operator verbinden. Aber ich bevorzuge Persönlich diese Variante.
WICHTIG: Wenn ihr die Funktion mit #{} benutzen wollt, muss euer String in Double Quotes [ " ] stehen. Single Quotes [ ' ] definieren zwar auch einen String, diese werden aber nicht nach weiteren Funktionen durchsucht. (z.B. auch nicht nach Zeilenumbrüchen mit \n )
Die Ausrichtung ist Standardmäßig Linksbündig. Wenn man den Parameter mit 1 übergibt wird er Zentriert, mit 2 Rechtsbündig.

Ruby Quellcode

1
2
3
4
5
6
def update
 if @actor.hp != @old_hp or @actor.sp != @old_sp
  refresh
 end
 super
end

Die update Funktion erklär ich gleich an einem Stück.
Zuerst fragen wir ab, ob sich der HP oder SP Wert zu dem der gerade angezeigt wird geändert hat. Die refresh Methode dauerhaft zu aktualisieren wäre fatal und würde zu derben laggs führen.
Zusätzlich rufen wir mit "super" noch die update Methode von Window_Base aus, damit uns das Fenster nicht mittendrin mal verschwindet ;)

Zuletzt machen wir nur noch unsere Klasse mit einem "end" zu und dann wären wir so weit Fertig.

3. Was brauch ich noch?

So, jetzt habe ich den Code, aber ich kann immer noch kein Fenster sehen?!?
Jetzt müssen wir in die Klasse Scene_Map um dort noch ein paar Änderungen vorzunehmen. Vorsicht: Ich gehe hier davon aus, dass ihr nicht das SDK benutzt!

Zuerst gehen wir unter die Zeile 15 (@message_window = Window_Message.new) und fügen diesen Code ein:

Ruby Quellcode

1
$hp_hud = HP_HUD.new if $game_switches[1] == true

Das Fenster soll beim Mapstart aufgerufen werden. Zusätzlich habe ich noch eine If Abfrage drangehangen, da man den HUD ja oft nicht immer haben will (z.B. Intro, Zwischensequenz)
Also wird das Fenster beim Mapstart (nicht während des laufens der Map) vom Switch mit der ID 1 gesteuert. (Beachte: Lasst die Vorgestellten Nullen weg. Also NICHT "0001")

Doch jetzt bleibt das Window für ewig da, selbst beim Aufruf des Menüs oder bei einem Game Over.
Dafür gehen wir unter die Hauptschleife in Zeile 37 (@message_window.dispose) und fügen diesen Code darunter ein:

Ruby Quellcode

1
2
3
if $hp_hud != nil and $hp_hud.disposed? == false
 $hp_hud.dispose
end

Dort wird zuerst überprüft ob das Fenster überhaupt existiert und ob es noch nicht disposed wurde.

Dann gehen wir noch in die Update Methode unter Zeile 63 ($game_screen.update) und fügen diesen Code ein:

Ruby Quellcode

1
2
3
if $hp_hud != nil and $hp_hud.disposed? == false
 $hp_hud.update
 end

Auch hier wird erst überprüft ob das Fenster existiert, bevor die update Methode aufgerufen wird. Sonst würde es möglicherweise zu abstürzen kommen.

OK, das wars! Der HUD aktualisiert und erstellt sich nun vollkommen eigenständig.

Man kann das Fenster natürlich aber auch manuell während die Map schon läuft entfernen. Dafür benutzt man folgenden Event Skript Code:

Ruby Quellcode

1
$hp_hud.dispose

Aber nicht vergessen den Switch für das Fenster ebenfalls auf OFF zu setzen, sonst ist das Fenster nach einem Menüaufruf wieder da.

Erstellen könnt ihr das Fenster dann wieder mit diesem Code:

Ruby Quellcode

1
$hp_hud = HP_HUD.new

oder wenn ihr nicht z.B. den 2. Helden der Gruppe nehmen wollt:

Ruby Quellcode

1
$hp_hud = HP_HUD.new(1)



4. Schlusssatz

Dieses Tutorial wollte ich schon seit langem schreiben, bin aber nie zu gekommen. Ich hoffe es war nicht eine ganz so schlechte Entscheidung das Ding Freitag nachts zu schreiben, aber ich hatte halt grad mal Zeit dafür ;)
Hoffentlich hab ich dadurch jetzt nicht allzu viele Fehler reingehauen.
Hab jetzt einfach drauf los geschrieben ohne große Struktur, Grafischen Schnick Schnack oder Korrekturlesung... Vllt morgen noch mal Nachbessern ^^

Wenn nicht alles ausführlich genug Beschrieben ist oder dir sonstiges Lob oder Kritik auf der Zunge brennt, dann lass es mich Wissen und poste in diesen Thread.
(Aber bitte kommt mir nicht damit, dass das Ding Scheisse aussieht... Dies ist ein RGSS Tutorial xD )

So und nun Wünsch ich euch noch viel Spass beim selber testen.
Gutes Gelingen und gute Nacht. *Licht ausmach*

Mfg Monsta
»Monsta« hat folgendes Bild angehängt:
  • HPHUD.JPG

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Monsta« (17. Juli 2007, 23:36)


2

Samstag, 16. Juni 2007, 09:03

Schönes Tut, Monsta, alle Elemente gut erklärt, selbst für Script-Dummies wie mich verständlich. Könntest du öfters machen, aber mom biste ja ziemlich im Stress. Ich würd's jedenfalls begrüssen, hier öfters ein Tut zum RGSS lesen zu können.

:thumbup:
Rabu

3

Samstag, 16. Juni 2007, 10:11

Kann mich Rabu nur anschließen, gut gemacht, leicht verstädnlich und hoffe auf mehr!

4

Samstag, 16. Juni 2007, 12:13

Nach anfänglichen Problemen, habe ich es auch hinbekommen,
schönes Tutorial =)
Ich stimme meinen Vorpostern zu, wäre sicher schön, wenn du
öfter ein Tutorial schreibst, wenn du mal Zeit und Lust hast : D

Sehr nützlich, dankeschön.

PS.: Ich hasse die ganzen Smilies im Forum <.<

~Bye Hybbie
Nichts und unbrauchbar...
Sollte mich jemand suchen, ich habe mich nun komplett aus der Szene zurückgezogen und
habe momentan auch keinen festen Internetzugang...Ich wünsche euch allen viel Erfolg.

5

Samstag, 16. Juni 2007, 13:04

Sehr schönes Tutorial Monsta ^^!
Ich kann es sicher gut gebrauchen,
also mach ruhig weiter so gute (RGSS) Tutorials :)!
Ich würde mich noch freuen wenn du das Tutorial mit solchen Balken
für die HP/SP Anzeige erweitert würdest.
Aber ansonsten schließe ich mich meinen Vorpostern an.



MFG Firephoenix
Bild

6

Dienstag, 17. Juli 2007, 23:39

Hmm.. hab mich gar nicht besankt für das Lob.. Danke! ^^

Hab auch noch mal einige Rechtschreibfehler korrigiert.
Wenn jemand eine Idee für ein weiteres Mini Tutorial hat (außer die grafischen Balken), soll er es mich Wissen lassen.
Vllt kann ich mich noch mal aufraffen ;)

Mfg Monsta

7

Mittwoch, 18. Juli 2007, 09:38

Wie wärs mit nen AKS tut ? ^^
kk bin scho leise =)

achja Tut is toll =D

so long
Vincent

edit:
Farrok du sagst es !!
^^
Bild
Bild
Bild
Bild

Spoiler: Gezocke



CONSOL:

SERIEN:

Final Fantasy:
Final Fantasy IX
Final Fantasy X
Final Fantasy X-2
Final Fantasy XII
Final Fantasy CC
Final Fantasy Tactics
Final Fantasy Dirge of Cerberus

The Legend of Zelda:
The Legend of Zelda
The Legend of Zelda A Link to the Past + Four Swords
The Legend of Zelda DX
The Legend of Zelda Ocarina of Time
The Legend of Zelda Majoras Mask
The Legend of Zelda Wind Walker
The Legend of Zelda Twilight Princess
The Legend of Zelda Oracle of Ages
The Legend of Zelda Oracle of Seasons
The Legend of Zelda Four Swords Adventures

Hack. :
Hack. Infection
Hack. Mutation
Hack. Outbreak
Hack. Qurantine

EINZEL GAMES:

Dragon Quest - Suche nach dem verwunschenen König
Devil May Cry 3

PC:

Warcraft 3
World of Warcraft
Guildwars




zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Vincent« (18. Juli 2007, 11:58)


8

Mittwoch, 18. Juli 2007, 11:18

@Vincent:

Zitat


Wenn jemand eine Idee für ein weiteres Mini Tutorial hat (außer die grafischen Balken), soll er es mich Wissen lassen.
Alles klar? ^^

@Monsta: Hmm...generell Tut würd emir nichts einfallen...könntest nochmal paar RGSS-Codes aufschreiben die man per Scriptbefehl einsetzen kann, wie man Bilder anstatt Windowskin machen, neue Menüpunkte und dergleichen...einfach solche kleinen Arbeiten die zwar den meisten klar sind aber dennoch nützlich in schriftlicher Form wären.

Ogoku

Rekrut

Motto: Gut Ding brauch Zeit!

  • Nachricht senden

9

Sonntag, 6. Januar 2008, 11:51

Hallo Monsta,

das Tutorial hat mir sehr geholfen mich ein klein wenig mit RGSS vertraut zu machen.
Hab es direkt mal nachgetippt und hat auch prima Funktioniert.

In deinem Tut erwähnst du, das du davon ausgehst dass das SDK nicht verwendet wird,
nun ich benutze es aber und nun funktioniert das Hud Script auch nicht mehr.

Was muss umgeschrieben werden, damit sich das Fenster wieder zeigt?

Gruss
Soul

10

Montag, 7. Januar 2008, 15:50

@Strong Soul:

Erst mal schön das dir das Tutorial gefallen hat :)
Jetzt zu deinem SDK Problem. Es wäre wichtig zu wissen welche SDK Version du besitzt. Ich habe ja nicht viel mit dem SDK am Hut aber ich habe Aufgrund deiner Frage mal schnell die Update Methode für das SDK 2.2 geschrieben:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Scene_Map < SDK::Scene_Base
  alias :monsta_hud_main_window :main_window
  def main_window
    $hp_hud = HP_HUD.new if $game_switches[1]
    monsta_hud_main_window
  end
 
  alias :monsta_hud_main_dispose :main_dispose
  def main_dispose
   if $hp_hud != nil and $hp_hud.disposed? == false
    $hp_hud.dispose
   end
   monsta_hud_main_dispose
  end
 
  alias :monsta_hud_main_update :main_update
  def main_update
   if $hp_hud != nil and $hp_hud.disposed? == false
     $hp_hud.update
   end
   monsta_hud_main_update
  end
end


Für Version 1.5 müsste der Code wahrscheinlich noch mal anders aussehen. Also welche Version verwendest du?

Ogoku

Rekrut

Motto: Gut Ding brauch Zeit!

  • Nachricht senden

11

Montag, 7. Januar 2008, 16:32

Hallo Monsta,

Also ich verwende die Version 2.3 des SDK, sollte somit also eigentlich keine Probleme darstellen. Aufwärtskomplatiebel sollte es doch sein oder?

Danke für den Code, aber hab dazu och einige Fragen:
  • Muss ich jetzt alles, was ich wegen des HUDs in Scene_Map eingefügt habe, wieder löschen? (Nach selbst Test -< Ja, musste ich xD)
  • Wo muss dieser Code jetzt eingefügt werden? In einem Script unter dem SDK denk ich mal oder? Also könnte ich es auch quasi in das Hud Script mit einfügen? Vor class HP_HUD < Window_Base... (Nach Test -> Funzt xD)
  • Was bedeutet dieses ganze alias gedönse überhaupt?
Gruss Soul

12

Montag, 7. Januar 2008, 17:05

Was bedeutet dieses ganze alias gedönse überhaupt?


z.B. Bei Caesars Post wirds nochmal erklärt:

RGSS:'alias' Bug beheben

Gibt sogar einen Scientia Eintrag.. Hab ihn grad mal gelesen.. ka ob der dir weiterhilft.

http://www.rmxp.de/scientia/index.php/Alias

In der Makerhilfe ist auch noch ne Erklärung: RGSS Reference Manual -> Ruby Syntax -> Class and Method Definitions -> alias

Und auch ansonsten gibts wohl genug Literatur dafür. Einfach mal bei Google nen bisschen suchen.

13

Sonntag, 16. März 2008, 20:46

RE: Eigener HUD

Bei mir wird der HUD angezeigt, aber wenn ich aus einem ampf rauskomme, stopt das Spiel. :naja: Nix mehr geht? Hat jemand ähnliche Probleme???

Musstest du für diese Frage wirklich das ganze Tutorial zitieren? Ich habs mal entfernt.. ~Monsta

14

Sonntag, 16. März 2008, 21:39

RE: RE: Eigener HUD

Bei mir wird der HUD angezeigt, aber wenn ich aus einem ampf rauskomme, stopt das Spiel. :naja: Nix mehr geht? Hat jemand ähnliche Probleme???


Das mit dem Riesenzitat der hier den Thread vollmüllt hab ich ja schon reineditiert..

Zu deinem Problem: Erläutere mal genauer: Das Spiel stoppt... Kommt ne Fehlermeldung? Geht das Spiel einfach aus? Eine Windwos XP Meldung? Friert das Spiel ein? Hast du noch andere Scripte drin wie z.B. SDK? usw. usf. Also bevor ich hier spekuliere gib mal mehr Details und überprüf ob du alles richtig eingefügt hast.

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

15

Freitag, 20. Februar 2009, 14:32

Und schon meine 1. Frage wie ich es vorhhergesagt habe^^, aber zuerstmal meine erklärung für mein problem:
Ich hab geschrieben

Ruby Quellcode

1
2
3
If Mouse.event?(i)
  $HUD = HUD.new
end

So, jetzt aktualisiert sich das aba andauernd wenn ich auf dem Event mit der Maus stehen bleibe, so dass man bei dem Hud alles blau sieht, außer ich gehe mit der Maus runter, dann sieht man es wieder Transperent, wiso ist das so? Bzw. Kannst du mir nur sagen wie ich dieses HUD mit einem Call-Script ausblenden kann?
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?


Spoiler: OpenSource-Projects
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
zum Lesen den Text mit der Maus markieren

RedLink

Landsknecht

Motto: Faulheit ist Relativ

  • Nachricht senden

16

Samstag, 21. Februar 2009, 10:31

Und schon meine 1. Frage wie ich es vorhhergesagt habe^^, aber zuerstmal meine erklärung für mein problem:
Ich hab geschrieben

Ruby Quellcode

1
2
3
If Mouse.event?(i)
  $HUD = HUD.new
end

So, jetzt aktualisiert sich das aba andauernd wenn ich auf dem Event mit der Maus stehen bleibe, so dass man bei dem Hud alles blau sieht, außer ich gehe mit der Maus runter, dann sieht man es wieder Transperent, wiso ist das so? Bzw. Kannst du mir nur sagen wie ich dieses HUD mit einem Call-Script ausblenden kann?
In welche Zeile hast du das gerschrieben?
  • Scripter

    Für den MV
  • Mitmacher

    nirgendswo

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

17

Samstag, 21. Februar 2009, 13:28

Das hab das jetzt schon gelöst, zwar voll umständlich aba es geht, hab auch was im Script umschreiben müssen^^, aber es geht jetzt.
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?


Spoiler: OpenSource-Projects
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
zum Lesen den Text mit der Maus markieren

18

Samstag, 21. Februar 2009, 21:37

Ich würde dir aber auf jeden Fall abraten den HUD ständig zu disposen und neu erstellen zu lassen. Das Problem liegt hier nicht am HUD sondern am Aufruf:

Ruby Quellcode

1
2
3
if Mouse.event?(i) 
  $HUD = HUD.new if $HUD.nil? || $HUD.disposed?
end


So wäre mein Lösungsvorschlag gewesen.

19

Montag, 6. April 2009, 11:36

Bilder

Kann man in diesem HUD auch Bilder/Icons einfügen? Und wenn ja könnte mir das kurz jemand erklären?

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

20

Montag, 6. April 2009, 11:58

Das Icon/Bild-Bitmap erstellst du mit

Ruby Quellcode

1
2
icon = RPG::Cache.icon("001-Weapon01")
picture = RPG::Cache.picture("Bildtest")


Mit der Bitmap-Methode .blt kopierst ein anderes Bitmap auf dieses.

Ruby Quellcode

1
2
3
4
5
6
icon = RPG::Cache.icon("001-Weapon01")
test = Bitmap.new(24,24)
# Ein Rect erstellen, dass so groß wie icon ist
rect = Rect.new(0,0,icon.width,icon.height)
# Kopiere den Inhalt von icon, in der Größe von rect auf die Koordinaten 0,0 von test
test.blt(0,0,icon,rect)
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Social Bookmarks