Charakter ausblenden und Soundpegel
So guten Abend an alle Themenleser,
ich hab da eine kleine Anfrage ob diese per RGSS zu lösen sind. Un zwar Iich habe mein Tag und Nachtskript mit verschiedenen Zeitabschnitten -> Tag, Abends, Nacht etc. nun ich würde gerne die NPCs an verschiedenen Tageszeiten anzeigen ob da oder nicht da, im Haus draußen etc. . Nun durch das switchen eines Schalters, wäre das auch kein Problem, nun möchte ich allerdings nicht das der NPc einfach so direkt vorm Helden verschwindet, sondern erst wenn der Held den Sichtbereich des NPCs verlässt. Nun meine Frage ist das per RGSS zu lösen? Denn wenn der Held sich in der Stadt befindet und der Zeitwechsel kommt und er befindet sich gerade in den Areal hätte ich gerne so eine Lösung - das allerdings auch gleichzeitig erkannt wird ah, der Held ist außerhalb der/des - Map/Gebietes und die NPC gleich ausblendet. Sicherlich ließe sich das per Event auch umsetzen, allerdings habe ich da Performance bedenken.
Was mich zu meinen zweiten Anliegen bringt: sagen wir ein Fluss strömt durch eine Stadt - okay ich möchte das das Rauschen erst ertönt wenn der Spieler nahe genug an das Event herankommt ->
-----------|------------XFlussX
-----------|-----------XFlussX
Spieler---|------------XFlussX
-----------|------------XFlussX
-----------|------------XFlussX
| = Hörbereich und von da an lauter werdend (evt. das durch den Eventnamen[und damit automatisch ausgeführt wird] die Art des Geräusches erkannt wird und man in einen gewissen Umkreis den Radius des Geräusches festlegen kann.)
|||||||||
||Quelle||
|||||||||
Auch dieses lässt sich per Koordinatenabfrage im Eventscript lösen allerdings hier nun wieder bedenken, der Performance wegen. Da ich bereits ziemlich viele Paralelle Prozesse im "Normallauf" am wirken habe.
PS: Noch eine kleine abschließenede Frage -> ist es möglich ein Picture unter den Helden zu setzen was allerdings weiterhin das Tileset anstrahlt?
lieblos dahingeklatschte Skizze: ^^
-Himmel-
-Picture normal-
-Held-
-Picture unter helden-
-Tileset-
-Hölle-
Ich danke jetzt schon mal für alle Antworten die mir irgendwie weiterhelfen können.
~Danke & Gruß Kain
ich hab da eine kleine Anfrage ob diese per RGSS zu lösen sind. Un zwar Iich habe mein Tag und Nachtskript mit verschiedenen Zeitabschnitten -> Tag, Abends, Nacht etc. nun ich würde gerne die NPCs an verschiedenen Tageszeiten anzeigen ob da oder nicht da, im Haus draußen etc. . Nun durch das switchen eines Schalters, wäre das auch kein Problem, nun möchte ich allerdings nicht das der NPc einfach so direkt vorm Helden verschwindet, sondern erst wenn der Held den Sichtbereich des NPCs verlässt. Nun meine Frage ist das per RGSS zu lösen? Denn wenn der Held sich in der Stadt befindet und der Zeitwechsel kommt und er befindet sich gerade in den Areal hätte ich gerne so eine Lösung - das allerdings auch gleichzeitig erkannt wird ah, der Held ist außerhalb der/des - Map/Gebietes und die NPC gleich ausblendet. Sicherlich ließe sich das per Event auch umsetzen, allerdings habe ich da Performance bedenken.
Was mich zu meinen zweiten Anliegen bringt: sagen wir ein Fluss strömt durch eine Stadt - okay ich möchte das das Rauschen erst ertönt wenn der Spieler nahe genug an das Event herankommt ->
-----------|------------XFlussX
-----------|-----------XFlussX
Spieler---|------------XFlussX
-----------|------------XFlussX
-----------|------------XFlussX
| = Hörbereich und von da an lauter werdend (evt. das durch den Eventnamen[und damit automatisch ausgeführt wird] die Art des Geräusches erkannt wird und man in einen gewissen Umkreis den Radius des Geräusches festlegen kann.)
|||||||||
||Quelle||
|||||||||
Auch dieses lässt sich per Koordinatenabfrage im Eventscript lösen allerdings hier nun wieder bedenken, der Performance wegen. Da ich bereits ziemlich viele Paralelle Prozesse im "Normallauf" am wirken habe.
PS: Noch eine kleine abschließenede Frage -> ist es möglich ein Picture unter den Helden zu setzen was allerdings weiterhin das Tileset anstrahlt?
lieblos dahingeklatschte Skizze: ^^
-Himmel-
-Picture normal-
-Held-
-Picture unter helden-
-Tileset-
-Hölle-
Ich danke jetzt schon mal für alle Antworten die mir irgendwie weiterhelfen können.
~Danke & Gruß Kain
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
1. Also sollen bestimmte Events nicht ihre Seite wechseln, bis sie außerhalb des Bildschirms sind?
2. Gibts schon im Skript Editor.
3. Ich hab sowas versucht: Problem mit Lightmap - Hilfe
Aber anscheiend läuft es nicht fehlerfrei.
Du könntestn die Lightmap auch als Event anzeigen lassen und dann Monstas Flat-Event-Skript nehmen, damit es unter allen anderen ist.
2. Gibts schon im Skript Editor.
3. Ich hab sowas versucht: Problem mit Lightmap - Hilfe
Aber anscheiend läuft es nicht fehlerfrei.
Du könntestn die Lightmap auch als Event anzeigen lassen und dann Monstas Flat-Event-Skript nehmen, damit es unter allen anderen ist.
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
|
|
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 |
class Game_Event alias_method :nb_skript_alias_game_event_refresh_kains_skript, :refresh alias_method :nb_skript_alias_game_event_update_kains_skript, :update def refresh if @page != nil and on_screen? @need_page_update = true return end nb_skript_alias_game_event_refresh_kains_skript end def update nb_skript_alias_game_event_update_kains_skript if @need_page_update and !on_screen? @need_page_update = false refresh end end end class Sprite_Character alias_method :nb_alias_skript_sprite_character_initialize_kains_skript, :initialize def initialize(*args) nb_alias_skript_sprite_character_initialize_kains_skript(*args) @character.sprite = self end end class Game_Character attr_accessor :sprite def on_screen? return false if @sprite == nil (screen_x < 640) && (screen_x+@sprite.bitmap.width/4 >= 0) && (screen_y < 480) && (screen_y+@sprite.bitmap.height/4 >= 0) end end |
zum Lesen den Text mit der Maus markieren
Das hier gilt bisher für alle Events. Soll ich noch ein Kennzeichen einbauen und wenn ja, welches?
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Einfach über Main natürlich ;)
|
|
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 |
class Game_Event alias_method :nb_skript_alias_game_event_refresh_kains_skript, :refresh alias_method :nb_skript_alias_game_event_update_kains_skript, :update def refresh if @page != nil and on_screen? and @event.name.include?("*") @need_page_update = true return end nb_skript_alias_game_event_refresh_kains_skript end def update nb_skript_alias_game_event_update_kains_skript if @need_page_update and !on_screen? @need_page_update = false refresh end end end class Sprite_Character alias_method :nb_alias_skript_sprite_character_initialize_kains_skript, :initialize def initialize(*args) nb_alias_skript_sprite_character_initialize_kains_skript(*args) @character.sprite = self end end class Game_Character attr_accessor :sprite def on_screen? return false if @sprite == nil (screen_x < 640) && (screen_x+@sprite.bitmap.width/4 >= 0) && (screen_y < 480) && (screen_y+@sprite.bitmap.height/4 >= 0) end end |
zum Lesen den Text mit der Maus markieren
Soweit klappt es erstmal. allerdings blenden die gleich beim Übergang aus sobald ich außer Reichweite bin, kann es erst ausblenden wenn ich noh 1 2 Tiles weiter bin? Zum anderen habe meine LE per Script nun ja die bewegen sich jetzt mit :3, was vorher nicht war xD..
Benutze für die LE das Light Effect von Near Fantastica:
~
Soweit klappt es erstmal. allerdings blenden die gleich beim Übergang aus sobald ich außer Reichweite bin, kann es erst ausblenden wenn ich noh 1 2 Tiles weiter bin? Zum anderen habe meine LE per Script nun ja die bewegen sich jetzt mit :3, was vorher nicht war xD..
Benutze für die LE das Light Effect von Near Fantastica:
~Gruß Kain
Benutze für die LE das Light Effect von Near Fantastica:
|
|
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 |
#==============================================================================
# ** Light Effects
#==============================================================================
# Near Fantastica
# Version 4
# 29.11.05
#==============================================================================
# The Light Effects Script adds light effects to events that are setup correctly
# this light can be used to simulate fires, street lights, windows and lamps.
# The light effects also have antilag build into them.
#==============================================================================
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log("Light Effects", "Near Fantastica", 4, "29.11.05")
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state("Light Effects") == true
class Spriteset_Map
#---------------------------------------------------------------------------
alias nf_les_spriteset_map_initalize initialize
alias nf_les_spriteset_map_dispose dispose
alias nf_les_spriteset_map_update update
#---------------------------------------------------------------------------
def initialize
@light_effects = {}
refresh_lights
nf_les_spriteset_map_initalize
end
#---------------------------------------------------------------------------
def dispose
nf_les_spriteset_map_dispose
dispose_lights
end
#---------------------------------------------------------------------------
def update
nf_les_spriteset_map_update
refresh_lights
end
#---------------------------------------------------------------------------
def dispose_lights
for effect in @light_effects.values
effect.light.dispose
end
@light_effects = {}
end
#---------------------------------------------------------------------------
def refresh_lights
return if @light_effects == nil
for event in $game_map.events.values
type = SDK.event_comment_input(event, 1, "Light Effects").to_s.upcase!
if type.nil? and @light_effects.include?(event)
@light_effects[event].light.dispose
@light_effects.delete(event)
next
end
if @light_effects.include?(event)
update_lights(@light_effects[event])
next
end
next if type.nil?
setup_lights(event, type)
end
end
#---------------------------------------------------------------------------
def setup_lights(event, type)
return if type.nil?
case type
when "GROUND"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 200 / 100.0
light_effects.light.zoom_y = 200 / 100.0
light_effects.light.opacity = 50
light_effects.light.x = (light_effects.event.real_x - 200 - $game_map.display_x) / 4
light_effects.light.y = (light_effects.event.real_y - 200 - $game_map.display_y) / 4
@light_effects[event] = light_effects
when "FIRE"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 300 / 100.0
light_effects.light.zoom_y = 300 / 100.0
light_effects.light.opacity = 100
light_effects.light.x = (event.real_x - 300 - $game_map.display_x) / 4
light_effects.light.y = (event.real_y - 300 - $game_map.display_y) / 4
@light_effects[event] = light_effects
when "LAMPPOST"
light_effects = Lamp_Effect.new(event,"LAMPPOST")
light_effects.light.opacity = 100
light_effects.light.x = (-0.25 * $game_map.display_x) (event.x * 32) - 25
light_effects.light.y = (-0.25 * $game_map.display_y) (event.y * 32) - 15
@light_effects[event] = light_effects
when "LEFTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 150
light_effects.light.x = (-0.25 * $game_map.display_x) (light_effects.event.x * 32) - 20
light_effects.light.y = (-0.25 * $game_map.display_y) (light_effects.event.y * 32) - 5
@light_effects[event] = light_effects
when "RIGHTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 150
light_effects.light.x = (-0.25 * $game_map.display_x) (light_effects.event.x * 32) - 10
light_effects.light.y = (-0.25 * $game_map.display_y) (light_effects.event.y * 32) - 5
@light_effects[event] = light_effects
when "WINDOW"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 75
light_effects.light.x = (-0.25 * $game_map.display_x) (light_effects.event.x * 32)
light_effects.light.y = (-0.25 * $game_map.display_y) (light_effects.event.y * 32)
@light_effects[event] = light_effects
end
end
#---------------------------------------------------------------------------
def update_lights(effect)
return if effect == nil
return if not in_range?(effect.event)
case effect.type
when "GROUND"
effect.light.x = (effect.event.real_x - 200 - $game_map.display_x) / 4
effect.light.y = (effect.event.real_y - 200 - $game_map.display_y) / 4
when "FIRE"
effect.light.x = (effect.event.real_x - 300 - $game_map.display_x) / 4
effect.light.y = (effect.event.real_y - 300 - $game_map.display_y) / 4
when "LAMPPOST"
effect.light.x = (-0.25 * $game_map.display_x) (effect.event.x * 32) - 25
effect.light.y = (-0.25 * $game_map.display_y) (effect.event.y * 32) - 15
when "LEFTLANTERN"
effect.light.x = (-0.25 * $game_map.display_x) (effect.event.x * 32) - 20
effect.light.y = (-0.25 * $game_map.display_y) (effect.event.y * 32) - 5
when "RIGHTLANTERN"
effect.light.x = (-0.25 * $game_map.display_x) (effect.event.x * 32) - 10
effect.light.y = (-0.25 * $game_map.display_y) (effect.event.y * 32) - 5
when "WINDOW"
effect.light.x = (-0.25 * $game_map.display_x) (effect.event.x * 32) - 15
effect.light.y = (-0.25 * $game_map.display_y) (effect.event.y * 32) - 20
end
end
#---------------------------------------------------------------------------
def in_range?(object)
screne_x = $game_map.display_x
screne_x -= 350
screne_y = $game_map.display_y
screne_y -= 350
screne_width = $game_map.display_x
screne_width = 2950
screne_height = $game_map.display_y
screne_height = 2250
return false if object.real_x <= screne_x
return false if object.real_x >= screne_width
return false if object.real_y <= screne_y
return false if object.real_y >= screne_height
return true
end
end
#============================================================================
# %u25A0 Light Effects Class
#============================================================================
class Light_Effect
#---------------------------------------------------------------------------
attr_accessor :light
attr_accessor :event
attr_accessor :type
#---------------------------------------------------------------------------
def initialize(event, type)
@light = Sprite.new
@light.bitmap = RPG::Cache.picture("LE.PNG")
@light.visible = true
@light.z = 1000
@event = event
@type = type
end
end
#============================================================================
# %u25A0 Lamp Effects Class
#============================================================================
class Lamp_Effect
#---------------------------------------------------------------------------
attr_accessor :light
attr_accessor :event
attr_accessor :type
#---------------------------------------------------------------------------
def initialize(event, type)
@light = Sprite.new
lamp = Bitmap.new(64,64)
lamp = RPG::Cache.picture("LE.PNG")
@light.bitmap = Bitmap.new(128,64)
src_rect = Rect.new(0, 0, 64, 64)
@light.bitmap.blt(0, 0, lamp, src_rect)
@light.bitmap.blt(20, 0, lamp, src_rect)
@light.visible = true
@light.z = 1000
@event = event
@type = type
end
end
#------------------------------------------------------------------------------
# * End SDK Enable Test
#------------------------------------------------------------------------------
end |
zum Lesen den Text mit der Maus markieren
~
Soweit klappt es erstmal. allerdings blenden die gleich beim Übergang aus sobald ich außer Reichweite bin, kann es erst ausblenden wenn ich noh 1 2 Tiles weiter bin? Zum anderen habe meine LE per Script nun ja die bewegen sich jetzt mit :3, was vorher nicht war xD..
Benutze für die LE das Light Effect von Near Fantastica:
|
|
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 |
#==============================================================================
# ** Light Effects
#==============================================================================
# Near Fantastica
# Version 4
# 29.11.05
#==============================================================================
# The Light Effects Script adds light effects to events that are setup correctly
# this light can be used to simulate fires, street lights, windows and lamps.
# The light effects also have antilag build into them.
#==============================================================================
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log("Light Effects", "Near Fantastica", 4, "29.11.05")
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state("Light Effects") == true
class Spriteset_Map
#---------------------------------------------------------------------------
alias nf_les_spriteset_map_initalize initialize
alias nf_les_spriteset_map_dispose dispose
alias nf_les_spriteset_map_update update
#---------------------------------------------------------------------------
def initialize
@light_effects = {}
refresh_lights
nf_les_spriteset_map_initalize
end
#---------------------------------------------------------------------------
def dispose
nf_les_spriteset_map_dispose
dispose_lights
end
#---------------------------------------------------------------------------
def update
nf_les_spriteset_map_update
refresh_lights
end
#---------------------------------------------------------------------------
def dispose_lights
for effect in @light_effects.values
effect.light.dispose
end
@light_effects = {}
end
#---------------------------------------------------------------------------
def refresh_lights
return if @light_effects == nil
for event in $game_map.events.values
type = SDK.event_comment_input(event, 1, "Light Effects").to_s.upcase!
if type.nil? and @light_effects.include?(event)
@light_effects[event].light.dispose
@light_effects.delete(event)
next
end
if @light_effects.include?(event)
update_lights(@light_effects[event])
next
end
next if type.nil?
setup_lights(event, type)
end
end
#---------------------------------------------------------------------------
def setup_lights(event, type)
return if type.nil?
case type
when "GROUND"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 200 / 100.0
light_effects.light.zoom_y = 200 / 100.0
light_effects.light.opacity = 50
light_effects.light.x = (light_effects.event.real_x - 200 - $game_map.display_x) / 4
light_effects.light.y = (light_effects.event.real_y - 200 - $game_map.display_y) / 4
@light_effects[event] = light_effects
when "FIRE"
light_effects = Light_Effect.new(event,type)
light_effects.light.zoom_x = 300 / 100.0
light_effects.light.zoom_y = 300 / 100.0
light_effects.light.opacity = 100
light_effects.light.x = (event.real_x - 300 - $game_map.display_x) / 4
light_effects.light.y = (event.real_y - 300 - $game_map.display_y) / 4
@light_effects[event] = light_effects
when "LAMPPOST"
light_effects = Lamp_Effect.new(event,"LAMPPOST")
light_effects.light.opacity = 100
light_effects.light.x = (-0.25 * $game_map.display_x) + (event.x * 32) - 25
light_effects.light.y = (-0.25 * $game_map.display_y) + (event.y * 32) - 15
@light_effects[event] = light_effects
when "LEFTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 150
light_effects.light.x = (-0.25 * $game_map.display_x) + (light_effects.event.x * 32) - 20
light_effects.light.y = (-0.25 * $game_map.display_y) + (light_effects.event.y * 32) - 5
@light_effects[event] = light_effects
when "RIGHTLANTERN"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 150
light_effects.light.x = (-0.25 * $game_map.display_x) + (light_effects.event.x * 32) - 10
light_effects.light.y = (-0.25 * $game_map.display_y) + (light_effects.event.y * 32) - 5
@light_effects[event] = light_effects
when "WINDOW"
light_effects = Light_Effect.new(event,type)
light_effects.light.opacity = 75
light_effects.light.x = (-0.25 * $game_map.display_x) + (light_effects.event.x * 32)
light_effects.light.y = (-0.25 * $game_map.display_y) + (light_effects.event.y * 32)
@light_effects[event] = light_effects
end
end
#---------------------------------------------------------------------------
def update_lights(effect)
return if effect == nil
return if not in_range?(effect.event)
case effect.type
when "GROUND"
effect.light.x = (effect.event.real_x - 200 - $game_map.display_x) / 4
effect.light.y = (effect.event.real_y - 200 - $game_map.display_y) / 4
when "FIRE"
effect.light.x = (effect.event.real_x - 300 - $game_map.display_x) / 4
effect.light.y = (effect.event.real_y - 300 - $game_map.display_y) / 4
when "LAMPPOST"
effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 25
effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
when "LEFTLANTERN"
effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 20
effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
when "RIGHTLANTERN"
effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 10
effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
when "WINDOW"
effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 15
effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 20
end
end
#---------------------------------------------------------------------------
def in_range?(object)
screne_x = $game_map.display_x
screne_x -= 350
screne_y = $game_map.display_y
screne_y -= 350
screne_width = $game_map.display_x
screne_width += 2950
screne_height = $game_map.display_y
screne_height += 2250
return false if object.real_x <= screne_x
return false if object.real_x >= screne_width
return false if object.real_y <= screne_y
return false if object.real_y >= screne_height
return true
end
end
#============================================================================
# ■ Light Effects Class
#============================================================================
class Light_Effect
#---------------------------------------------------------------------------
attr_accessor :light
attr_accessor :event
attr_accessor :type
#---------------------------------------------------------------------------
def initialize(event, type)
@light = Sprite.new
@light.bitmap = RPG::Cache.picture("LE.PNG")
@light.visible = true
@light.z = 1000
@event = event
@type = type
end
end
#============================================================================
# ■ Lamp Effects Class
#============================================================================
class Lamp_Effect
#---------------------------------------------------------------------------
attr_accessor :light
attr_accessor :event
attr_accessor :type
#---------------------------------------------------------------------------
def initialize(event, type)
@light = Sprite.new
lamp = Bitmap.new(64,64)
lamp = RPG::Cache.picture("LE.PNG")
@light.bitmap = Bitmap.new(128,64)
src_rect = Rect.new(0, 0, 64, 64)
@light.bitmap.blt(0, 0, lamp, src_rect)
@light.bitmap.blt(20, 0, lamp, src_rect)
@light.visible = true
@light.z = 1000
@event = event
@type = type
end
end
#------------------------------------------------------------------------------
# * End SDK Enable Test
#------------------------------------------------------------------------------
end |
zum Lesen den Text mit der Maus markieren
~Gruß Kain
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
In Zeile 32 kannst du die Koordinaten ändern, wenn du magst. Sind nur 4 Zahlen ;)
Zitat
Soweit klappt es erstmal. allerdings blenden die gleich beim Übergang aus sobald ich außer Reichweite bin, kann es erst ausblenden wenn ich noh 1 2 Tiles weiter bin?
Bah, SDK D:
Zitat
Zum anderen habe meine LE per Script nun ja die bewegen sich jetzt mit :3, was vorher nicht war xD..
Probier mal die Ordnung von SDK, LE-Skript und meinem Skript zu ändern. Ansonsten seh ich auch nix was sich da gegenseitig störten könnte :/
Ja, es klappt soweit, danke Neo
hast mir heute sehr weitergeholfen.
EDIT: Nun hat sich doch noch was ergeben, ich habe die Werte deines Scriptes angepasst nun allerdings auf der Y Achse, sobald ich den Bildschirm nach oben verlasse verschwindet es nachwievor plötzlich.. wenn ich nach unten hin den Bildschirm verlasse ist alles wie gehabt, auf der X-Achse funzt alles.
Hab Zeile 32 so angepasst:
~Mfg Kain
hast mir heute sehr weitergeholfen.EDIT: Nun hat sich doch noch was ergeben, ich habe die Werte deines Scriptes angepasst nun allerdings auf der Y Achse, sobald ich den Bildschirm nach oben verlasse verschwindet es nachwievor plötzlich.. wenn ich nach unten hin den Bildschirm verlasse ist alles wie gehabt, auf der X-Achse funzt alles.
Hab Zeile 32 so angepasst:
|
|
Ruby Quellcode |
1 |
(screen_x < 638) && (screen_x+@sprite.bitmap.width/4 >= 0) && (screen_y < 476) && (screen_y+@sprite.bitmap.height/4 >= 0) |
~Mfg Kain
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Das es auf der X-Achse funktioniert wundert mich, aber du msstest die Werte auch eigentlich höher machen ;)
So ist es, dass ein Event nicht mehr als "auf dem Bildschirm" gilt, wenn es auf der X-Achse außerhalb von 0-638 und auf der Y-Achse außerhalb von 0-476 ist ;)
So gehts einfacher ^^
So ist es, dass ein Event nicht mehr als "auf dem Bildschirm" gilt, wenn es auf der X-Achse außerhalb von 0-638 und auf der Y-Achse außerhalb von 0-476 ist ;)
So gehts einfacher ^^
|
|
Ruby Quellcode |
1 2 3 |
range = 64 (screen_x < 640+range) && (screen_x+@sprite.bitmap.width/4 >= -range) && # passt nicht mehr in die Zeile hier >.< (screen_y < 480+range) && (screen_y+@sprite.bitmap.height/4 >= -range) |
Ähnliche Themen
-
Einsteigerhilfe »-
Ausblenden
(21. November 2008, 16:24)
-
Skript-Anfragen »-
Script um Variable auf Bildschirm anzeigen lassen.
(3. Oktober 2007, 10:24)
-
RGSS 1 Probleme & Talk »-
Wasserspiegelungen
(10. Juli 2006, 20:53)

