Snugglebit

Krieger

  • »Snugglebit« ist der Autor dieses Themas

Motto: Menschen sind doof, Tiere sind doof, Pflanzen sind doof... Steine sind okay.

  • Nachricht senden

1

Samstag, 16. Juni 2018, 19:36

Ganz simples HUD

Hi zusammen.
Ich bin auf der Suche nach einem ganz, ganz simplen HUD für den RM VX Ace. Ich habe schon viele gefunden, so ist es nicht - nur sind sie alle für meinen Geschmack etwas zu überkandiddelt.
Was ich suche, ist etwas absolut simples, wo nur das Nötigste zu sehen sein soll: Name + HP und MP. Mehr nicht. Meinetwegen noch der Level, aber selbst das muss nicht unbedingt sein.

Ich habe im Anhang mal ein Bild gesetzt. Dort habe ich ganz fix bei PS zusammengeschraubt, wie in etwa ich mir das vorstelle. Kennt jemand so einen Script? Oder kann mir vielleicht sogar jemand so einen "schnell" schreiben?
»Snugglebit« hat folgende Datei angehängt:
Was lebt, das kann man töten. Was tot ist, das kann man essen.
--------------------------------------------------------------------------
:map: Mapping: :star::star::star::star::star:
:compile: Scripting: :star-empty::star-empty::star-empty::star-empty::star-empty:
:system-monitor: Event: :star::star::star::star::star:
:doc: Story: :star::star::star::star::star-empty:
:pencil: Zeichnen: :star::star::star::star::star:
:palette: Pixeln: :star::star::star-half::star-empty::star-empty:
:music-beam-16: Musik & Sounds: :star::star::star::star-empty::star-empty:
--------------------------------------------------------------------------
Bevorzugter Maker: :ace:
Ebenfalls im Besitzt: :rmxp: :rmvx: :rmmv:

Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

2

Montag, 18. Juni 2018, 20:01

Was ist denn mit diesem HUD?
Simple HUD - Completed Ace Scripts - RPG Maker Central Forums

Das kannst du auch ganz einfach auf deine Wünsche spezifizieren:

Zum Beispiel in Zeile 51 die refresh Methode so abändern:

Ruby Quellcode

1
2
3
4
5
6
7
8
  def refresh      
    @actor_values = [@actor.mhp,@actor.hp,@actor.mmp,@actor.mp,@actor.character_name,@actor.character_index,@actor.name]
    contents.clear
    #draw_character(@actor.character_name, @actor.character_index, 12, 32)
    draw_actor_name(@actor, 0 , 0, self.contents.width-32)
    draw_actor_hp(@actor, 0, self.contents.height/3,self.contents.width)
    draw_actor_mp(@actor, 0, self.contents.height/3*2,self.contents.width)
  end


In Zeile 54 habe ich auskommentiert (es wird also keine Actor Grafik gezeichnet). In Zeile 55 den Wert 32 auf 0 setzen, damit ist der Actorname
nicht mehr mittig sondern links ausgerichtet.

Wenn du dann noch einen anderen Window-Style haben möchtest, kannst du ja den Windowskin des Fensters ändern.
Das müsstest du in Zeile 42 in der initialize-Methode machen. Und zwar füngst du einfach die folgende Zeile ein;

Ruby Quellcode

1
self.windowskin = Cache.system("meinFenster")

Es sollte dann so aussehen:

Ruby Quellcode

1
2
3
4
5
6
7
  def initialize(x,y,actor_id)
    @actor = $game_party.all_members[actor_id]
    super(x,y,Graphics.width/4,fitting_height(3))
    self.opacity = WINDOW_ALPHA
    self.windowskin = Cache.system("meinFenster")
    refresh
  end


Dann machst du einfach einen neuen Windowskin (zB ohne Rahmen usw, einfach schwarzer Hintergrund mit bisschen Transparenz), importierst den in dein Spiel und fertig.

Snugglebit

Krieger

  • »Snugglebit« ist der Autor dieses Themas

Motto: Menschen sind doof, Tiere sind doof, Pflanzen sind doof... Steine sind okay.

  • Nachricht senden

3

Dienstag, 19. Juni 2018, 20:03

Das sieht so weit schonmal sehr gut aus, vielen Dank.
Zwei Frage hätte ich aber noch:
Wäre es vielleicht möglich, das HUD noch schmaler zu machen? Also etwas kleinere Schrift und die Kästen nicht ganz so hoch?
Und kann man das Dimmen der Kästen - wenn man sich unter dem HUD befindet - auch auf die Schrift anwenden?
Was lebt, das kann man töten. Was tot ist, das kann man essen.
--------------------------------------------------------------------------
:map: Mapping: :star::star::star::star::star:
:compile: Scripting: :star-empty::star-empty::star-empty::star-empty::star-empty:
:system-monitor: Event: :star::star::star::star::star:
:doc: Story: :star::star::star::star::star-empty:
:pencil: Zeichnen: :star::star::star::star::star:
:palette: Pixeln: :star::star::star-half::star-empty::star-empty:
:music-beam-16: Musik & Sounds: :star::star::star::star-empty::star-empty:
--------------------------------------------------------------------------
Bevorzugter Maker: :ace:
Ebenfalls im Besitzt: :rmxp: :rmvx: :rmmv:

Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

4

Mittwoch, 20. Juni 2018, 20:00

Ja, das sollte alles noch möglich sein.
Ich werde mich heut abend mal dran versuchen.

Edit
Hier mal das modifizierte Skript:
Spoiler

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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Simple HUD                                                                  ║
#║  by DigiDeity                                                               ║
#║  contact: digideity@yandex.com                                              ║
#║  Want to use this for a commercial purpose? Contact me! :)                  ║
#╠Description══════════════════════════════════════════════════════════════════╣
#║ This Script allows the user to use a simple HUD which will display the HP,  ║
#║ MP, Actor Charset and the name of every actor in the current party.         ║
#╠Usage════════════════════════════════════════════════════════════════════════╣
#║ Just setup the setting below this discription and you can start using it.   ║
#╠Note═════════════════════════════════════════════════════════════════════════╣
#║ Feel free to contact me if you want to report bugs or any ideas for updates.║
#║ Also I'm trying to improve my English in genral if you find any big mistakes║
#║ you would help me by letting me know. ;)                                    ║
#╚═════════════════════════════════════════════════════════════════════════════╝
module DoubleD
  module Simple_HUD
#╔Settings═════════════════════════════════════════════════════════════════════╗
# Choose an ID fot the switch which determinates if the HUD is visible
  VISIBLE_SWITCH_ID = 1
# Choose the value (0-255) for the opacity of the HUD (Window)
  WINDOW_ALPHA = 125
# Choose the value (0-255) for the opacity of the HUD (Window) if the Player 
# collides with it.
  WINDOW_COLLIDE_ALPHA = 50
# Choose the position of the HUD
# 1 => Top, 2 => Bot, 3 => Left, 4 => Right, 5 => Every Corner (works only with 4 members)
  HUD_POSITION = 5
 
# Edit:
  FONT_SIZE = 16
  NORMAL_COLOR = Color.new(255, 255, 255, 200)
  WINDOW_HEIGHT = 84
  OFFSET_HP = 14
  OFFSET_MP = 34
 
#╚EndOfSetting═════════════════════════════════════════════════════════════════╝
  end
end
include DoubleD::Simple_HUD
#==============================================================================
# ** Window_Base_HUD
#------------------------------------------------------------------------------
#  This is a super class of all windows within the game to show a simple HUD.
#==============================================================================
class Window_Base_HUD < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x,y,actor_id)
    @actor = $game_party.all_members[actor_id]
    super(x,y,Graphics.width/4, WINDOW_HEIGHT)
    self.opacity = WINDOW_ALPHA
    refresh
  end
  #--------------------------------------------------------------------------
  # * Create Window Contents
  #--------------------------------------------------------------------------
  def refresh      
    contents.font.size = FONT_SIZE
    @actor_values = [@actor.mhp,@actor.hp,@actor.mmp,@actor.mp,@actor.character_name,@actor.character_index,@actor.name]
    contents.clear
    draw_actor_name_hud(@actor, 0 , 0, self.contents.width-32)
    draw_actor_hp_hud(@actor, 0, OFFSET_HP, self.contents.width)
    draw_actor_mp_hud(@actor, 0, OFFSET_MP, self.contents.width)
    contents.font.size = Font.default_size
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    refresh if need_update? && $game_switches[VISIBLE_SWITCH_ID]
    update_visibility
  end
  #--------------------------------------------------------------------------
  # * Update the visibility and opacity
  #--------------------------------------------------------------------------
  def update_visibility
    self.visible = $game_switches[VISIBLE_SWITCH_ID]
    self.opacity = ($game_player.screen_x >= self.x && $game_player.screen_x <= self.x + self.width && $game_player.screen_y >= self.y && $game_player.screen_y <= self.y + self.height) ? WINDOW_COLLIDE_ALPHA : WINDOW_ALPHA
  end
  #--------------------------------------------------------------------------
  # * Determinates if the window have to be redrawn
  #--------------------------------------------------------------------------
  def need_update?
    return @actor_values[0] != @actor.mhp || @actor_values[1] != @actor.hp || @actor_values[2] != @actor.mmp || @actor_values[3] != @actor.mp || @actor_values[4] != @actor.character_name || @actor_values[5] != @actor.character_index || @actor_values[6] != @actor.name
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Name (HUD)
  #--------------------------------------------------------------------------
  def draw_actor_name_hud(actor, x, y, width = 112)
    contents.font.color = NORMAL_COLOR
    draw_text(x, y, width, line_height, actor.name)
  end
  #--------------------------------------------------------------------------
  # * Draw HP (HUD)
  #--------------------------------------------------------------------------
  def draw_actor_hp_hud(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
    contents.font.color = NORMAL_COLOR
    draw_text(x, y, 30, line_height, Vocab::hp_a)
    draw_current_and_max_values_hud(x, y, width, actor.hp, actor.mhp,
      NORMAL_COLOR, NORMAL_COLOR)
  end
  #--------------------------------------------------------------------------
  # * Draw MP (HUD)
  #--------------------------------------------------------------------------
  def draw_actor_mp_hud(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
    contents.font.color = NORMAL_COLOR
    draw_text(x, y, 30, line_height, Vocab::mp_a)
    draw_current_and_max_values_hud(x, y, width, actor.mp, actor.mmp,
      NORMAL_COLOR, NORMAL_COLOR)
  end
  #--------------------------------------------------------------------------
  # * Draw Values
  #--------------------------------------------------------------------------
  def draw_current_and_max_values_hud(x, y, width, current, max, color1, color2)
    change_color(color1)
    xr = x + width
    if width < 96
      draw_text(xr - 40, y, 42, line_height, current, 2)
    else
      draw_text(xr - 92, y, 96, line_height, current.to_s + "/" + max.to_s, 2)
    end
  end
end
#==============================================================================
# * Simple_HUD
#------------------------------------------------------------------------------
#  This is a super class of the simple HUD which will be displayed on the map
#==============================================================================
class Simple_HUD
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize()
    @hud_windows = []
    for i in 0...$game_party.all_members.size
      case HUD_POSITION
      when 1 # Top
        @hud_windows.push(Window_Base_HUD.new(Graphics.width/4*i,0,i))
      when 2 # Bot
        @hud_windows.push(Window_Base_HUD.new(Graphics.width/4*i,Graphics.height-(3*24+24),i))
      when 3 # Left
        @hud_windows.push(Window_Base_HUD.new(0,(3*24+24)*i,i))
      when 4 # Right
        @hud_windows.push(Window_Base_HUD.new(Graphics.width-Graphics.width/4,(3*24+24)*i,i))
      when 5 # Corner
        case i
        when 0 
          @hud_windows.push(Window_Base_HUD.new(0,0,i))
        when 1
          @hud_windows.push(Window_Base_HUD.new(Graphics.width-Graphics.width/4,0,i))
        when 2
          @hud_windows.push(Window_Base_HUD.new(0,Graphics.height-(3*24+24),i))
        when 3
          @hud_windows.push(Window_Base_HUD.new(Graphics.width-Graphics.width/4,Graphics.height-(3*24+24),i))
        end
      end
    end
    @party_size = $game_party.all_members.size
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if @party_size != $game_party.all_members.size
      terminate
      initialize
    end
    for window in @hud_windows
      window.update
    end
  end
  #--------------------------------------------------------------------------
  # * Terminate all windows 
  #--------------------------------------------------------------------------
  def terminate
    for window in @hud_windows
      window.dispose
    end
  end
end
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Aliased methods
  #--------------------------------------------------------------------------
  alias doubleD_simple_hud_initialize initialize
  alias doubleD_simple_hud_update update
  alias doubleD_simple_hud_dispose dispose
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(*args)
    doubleD_simple_hud_initialize(*args)
    @doubleD_simple_hud = Simple_HUD.new()
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update(*args)
    doubleD_simple_hud_update(*args)
    @doubleD_simple_hud.update if !@doubleD_simple_hud.nil?
  end
  #--------------------------------------------------------------------------
  # * Disposing all stuff
  #--------------------------------------------------------------------------
  def dispose(*args)
    doubleD_simple_hud_dispose(*args)
    @doubleD_simple_hud.terminate if !@doubleD_simple_hud.nil?
  end
end

zum Lesen den Text mit der Maus markieren



Ich habs jetzt so gemacht, dass du im Modul einfach einstellen kannst, wie du das Hud designst. Das Problem ist nur die Schriftgröße und
Transparenz der HP/MP-Balken (falls du die willst).

Wenn du die HP und MP Balken auch transparenter machen willst, dann musst du bei deinem Windowskin, den du (nur) für dieses Hud Window verwendest,
diese Farben auch teiltransparent darstellen.
Ansonsten musst du noch dein Windowskin einfügen, den du verwenden willst im Fenster wie oben gezeigt:

Ruby Quellcode

1
self.windowskin = Cache.system("meinFenster")


Im Module oben im Skript kannst du jetzt die folgenden Dinge einstellen:

Ruby Quellcode

1
2
3
4
5
  FONT_SIZE = 16
  NORMAL_COLOR = Color.new(255, 255, 255, 200)
  WINDOW_HEIGHT = 84
  OFFSET_HP = 14
  OFFSET_MP = 34


Denke FONT_SIZE und WINDOW_HEIGHT ist selbsterklärend. WINDOW_HEIGHT musst du evtl. anpassen, wenn du die Schrifgröße oder die Offsets veränderst.
Die Transparenz der Schriftfarbe kannst du in NORMAL_COLOR ändern. Aktuell ist der Wert auf 200 (rgba-Farbpalette).

OFFSET_HP: y-Anfangskoordinate des HP-Balkens (+Schriftzug).
OFFSET_MP: y-Anfangskoordinate des MP-Balkens (+Schriftzug).

Sprich: Wenn du die Fontsize veränderst, wird du vermutlich die Höhe des Fensters, sowie die beiden Offsets anpassen müssen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mitsch93« (20. Juni 2018, 20:00)


Snugglebit

Krieger

  • »Snugglebit« ist der Autor dieses Themas

Motto: Menschen sind doof, Tiere sind doof, Pflanzen sind doof... Steine sind okay.

  • Nachricht senden

5

Samstag, 23. Juni 2018, 14:49

So ganz funktioniert das noch nicht...
Offset und Font Size läuft, nur ändert sich nichts, wenn ich die Fenstergröße ändere.
Der Name steht noch sehr weit oben. Den hätte ich gern ein Stück runter, und dafür dann das Fenster nicht so hoch
»Snugglebit« hat folgende Datei angehängt:
Was lebt, das kann man töten. Was tot ist, das kann man essen.
--------------------------------------------------------------------------
:map: Mapping: :star::star::star::star::star:
:compile: Scripting: :star-empty::star-empty::star-empty::star-empty::star-empty:
:system-monitor: Event: :star::star::star::star::star:
:doc: Story: :star::star::star::star::star-empty:
:pencil: Zeichnen: :star::star::star::star::star:
:palette: Pixeln: :star::star::star-half::star-empty::star-empty:
:music-beam-16: Musik & Sounds: :star::star::star::star-empty::star-empty:
--------------------------------------------------------------------------
Bevorzugter Maker: :ace:
Ebenfalls im Besitzt: :rmxp: :rmvx: :rmmv:

Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

6

Dienstag, 26. Juni 2018, 20:17

Also bei mir funktioniert es einwandfrei.
Im Anhang mal nen Screen.

Hab den Code noch dahingehend verändert, dass du die Y-Koordinate des Namen
verändern kannst im Modul:

Ruby Quellcode

1
OFFSET_NAME = 0


Spoiler

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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Simple HUD                                                                  ║
#║  by DigiDeity                                                               ║
#║  contact: digideity@yandex.com                                              ║
#║  Want to use this for a commercial purpose? Contact me! :)                  ║
#╠Description══════════════════════════════════════════════════════════════════╣
#║ This Script allows the user to use a simple HUD which will display the HP,  ║
#║ MP, Actor Charset and the name of every actor in the current party.         ║
#╠Usage════════════════════════════════════════════════════════════════════════╣
#║ Just setup the setting below this discription and you can start using it.   ║
#╠Note═════════════════════════════════════════════════════════════════════════╣
#║ Feel free to contact me if you want to report bugs or any ideas for updates.║
#║ Also I'm trying to improve my English in genral if you find any big mistakes║
#║ you would help me by letting me know. ;)                                    ║
#╚═════════════════════════════════════════════════════════════════════════════╝
module DoubleD
  module Simple_HUD
#╔Settings═════════════════════════════════════════════════════════════════════╗
# Choose an ID fot the switch which determinates if the HUD is visible
  VISIBLE_SWITCH_ID = 1
# Choose the value (0-255) for the opacity of the HUD (Window)
  WINDOW_ALPHA = 125
# Choose the value (0-255) for the opacity of the HUD (Window) if the Player 
# collides with it.
  WINDOW_COLLIDE_ALPHA = 50
# Choose the position of the HUD
# 1 => Top, 2 => Bot, 3 => Left, 4 => Right, 5 => Every Corner (works only with 4 members)
  HUD_POSITION = 5
 
# Edit:
  FONT_SIZE = 16
  NORMAL_COLOR = Color.new(255, 255, 255, 200)
  WINDOW_HEIGHT = 84
  OFFSET_NAME = 0
  OFFSET_HP = 14 
  OFFSET_MP = 34
 
#╚EndOfSetting═════════════════════════════════════════════════════════════════╝
  end
end
include DoubleD::Simple_HUD
#==============================================================================
# ** Window_Base_HUD
#------------------------------------------------------------------------------
#  This is a super class of all windows within the game to show a simple HUD.
#==============================================================================
class Window_Base_HUD < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x,y,actor_id)
    @actor = $game_party.all_members[actor_id]
    super(x,y,Graphics.width/4, WINDOW_HEIGHT)
    self.opacity = WINDOW_ALPHA
    refresh
  end
  #--------------------------------------------------------------------------
  # * Create Window Contents
  #--------------------------------------------------------------------------
  def refresh      
    contents.font.size = FONT_SIZE
    @actor_values = [@actor.mhp,@actor.hp,@actor.mmp,@actor.mp,@actor.character_name,@actor.character_index,@actor.name]
    contents.clear
    draw_actor_name_hud(@actor, 0 , OFFSET_NAME, self.contents.width-32)
    draw_actor_hp_hud(@actor, 0, OFFSET_HP, self.contents.width)
    draw_actor_mp_hud(@actor, 0, OFFSET_MP, self.contents.width)
    contents.font.size = Font.default_size
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    refresh if need_update? && $game_switches[VISIBLE_SWITCH_ID]
    update_visibility
  end
  #--------------------------------------------------------------------------
  # * Update the visibility and opacity
  #--------------------------------------------------------------------------
  def update_visibility
    self.visible = $game_switches[VISIBLE_SWITCH_ID]
    self.opacity = ($game_player.screen_x >= self.x && $game_player.screen_x <= self.x + self.width && $game_player.screen_y >= self.y && $game_player.screen_y <= self.y + self.height) ? WINDOW_COLLIDE_ALPHA : WINDOW_ALPHA
  end
  #--------------------------------------------------------------------------
  # * Determinates if the window have to be redrawn
  #--------------------------------------------------------------------------
  def need_update?
    return @actor_values[0] != @actor.mhp || @actor_values[1] != @actor.hp || @actor_values[2] != @actor.mmp || @actor_values[3] != @actor.mp || @actor_values[4] != @actor.character_name || @actor_values[5] != @actor.character_index || @actor_values[6] != @actor.name
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Name (HUD)
  #--------------------------------------------------------------------------
  def draw_actor_name_hud(actor, x, y, width = 112)
    contents.font.color = NORMAL_COLOR
    draw_text(x, y, width, line_height, actor.name)
  end
  #--------------------------------------------------------------------------
  # * Draw HP (HUD)
  #--------------------------------------------------------------------------
  def draw_actor_hp_hud(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
    contents.font.color = NORMAL_COLOR
    draw_text(x, y, 30, line_height, Vocab::hp_a)
    draw_current_and_max_values_hud(x, y, width, actor.hp, actor.mhp,
      NORMAL_COLOR, NORMAL_COLOR)
  end
  #--------------------------------------------------------------------------
  # * Draw MP (HUD)
  #--------------------------------------------------------------------------
  def draw_actor_mp_hud(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
    contents.font.color = NORMAL_COLOR
    draw_text(x, y, 30, line_height, Vocab::mp_a)
    draw_current_and_max_values_hud(x, y, width, actor.mp, actor.mmp,
      NORMAL_COLOR, NORMAL_COLOR)
  end
  #--------------------------------------------------------------------------
  # * Draw Values
  #--------------------------------------------------------------------------
  def draw_current_and_max_values_hud(x, y, width, current, max, color1, color2)
    change_color(color1)
    xr = x + width
    if width < 96
      draw_text(xr - 40, y, 42, line_height, current, 2)
    else
      draw_text(xr - 92, y, 96, line_height, current.to_s + "/" + max.to_s, 2)
    end
  end
end
#==============================================================================
# * Simple_HUD
#------------------------------------------------------------------------------
#  This is a super class of the simple HUD which will be displayed on the map
#==============================================================================
class Simple_HUD
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize()
    @hud_windows = []
    for i in 0...$game_party.all_members.size
      case HUD_POSITION
      when 1 # Top
        @hud_windows.push(Window_Base_HUD.new(Graphics.width/4*i,0,i))
      when 2 # Bot
        @hud_windows.push(Window_Base_HUD.new(Graphics.width/4*i,Graphics.height-(3*24+24),i))
      when 3 # Left
        @hud_windows.push(Window_Base_HUD.new(0,(3*24+24)*i,i))
      when 4 # Right
        @hud_windows.push(Window_Base_HUD.new(Graphics.width-Graphics.width/4,(3*24+24)*i,i))
      when 5 # Corner
        case i
        when 0 
          @hud_windows.push(Window_Base_HUD.new(0,0,i))
        when 1
          @hud_windows.push(Window_Base_HUD.new(Graphics.width-Graphics.width/4,0,i))
        when 2
          @hud_windows.push(Window_Base_HUD.new(0,Graphics.height-(3*24+24),i))
        when 3
          @hud_windows.push(Window_Base_HUD.new(Graphics.width-Graphics.width/4,Graphics.height-(3*24+24),i))
        end
      end
    end
    @party_size = $game_party.all_members.size
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if @party_size != $game_party.all_members.size
      terminate
      initialize
    end
    for window in @hud_windows
      window.update
    end
  end
  #--------------------------------------------------------------------------
  # * Terminate all windows 
  #--------------------------------------------------------------------------
  def terminate
    for window in @hud_windows
      window.dispose
    end
  end
end
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Aliased methods
  #--------------------------------------------------------------------------
  alias doubleD_simple_hud_initialize initialize
  alias doubleD_simple_hud_update update
  alias doubleD_simple_hud_dispose dispose
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(*args)
    doubleD_simple_hud_initialize(*args)
    @doubleD_simple_hud = Simple_HUD.new()
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update(*args)
    doubleD_simple_hud_update(*args)
    @doubleD_simple_hud.update if !@doubleD_simple_hud.nil?
  end
  #--------------------------------------------------------------------------
  # * Disposing all stuff
  #--------------------------------------------------------------------------
  def dispose(*args)
    doubleD_simple_hud_dispose(*args)
    @doubleD_simple_hud.terminate if !@doubleD_simple_hud.nil?
  end
end

zum Lesen den Text mit der Maus markieren
»Mitsch93« hat folgende Datei angehängt:
  • hud.png (33,67 kB - 6 mal heruntergeladen - zuletzt: 15. Juli 2018, 16:31)

Social Bookmarks