Jak w Ruby napisać komendę, że kiedy grasz ma 80% zmienia się jakaś grafika?
Chodzi mi o stworzenie Hud'a. Jak masz 100% jest grafika nr1, jak 80% nr2, a jak 50% nr3 itd.
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Pią 29 Kwi, 2011 10:46
Należy zastosować warunek... możliwości jest kilka
Jeśli HUD oparty jest na 'sprajcie' bezpośrednio w scenie, można zrobić warunek:
Kod:
actor = $game_party.members[0]
if actor.hp == actor.maxhp
# bitmapa nr 1
# jakiś_sprite.bitmap = Cache.picture('bitmapa nr 1')
elsif actor.hp > actor.maxhp * 0,8 # gdyż 0,8 to 80%
# bitmapa nr 2
# jakiś_sprite.bitmap = Cache.picture('bitmapa nr 2')
elsif actor.hp > actor.maxhp * 0,5 # gdyż 0,5 to 50%
# bitmapa nr 3
# jakiś_sprite.bitmap = Cache.picture('bitmapa nr 3')
else # gdy powyższe warunki nie zostaną spełnione
# bitmapa nr 4
end
Podobnie można zrobić w oknie... najlepiej by było, gdybyś podał fragment skryptu, w którym jest dodany HUD, wtedy dodając warunki ustawilibyśmy inną grafikę
class Scene_Map
alias hud_main main
def main
@Hud = Hud.new
hud_main
@Hud.dispose
end
alias hud_update update
def update
hud_update
#if $andando == true
#@Hud.refresh if Graphics.frame_count % 80 == 0
#else
@Hud.refresh if Graphics.frame_count % 30 == 0
#end
end
end
________________________
Ostatnio zmieniony przez CrasheR Pią 29 Kwi, 2011 13:58, w całości zmieniany 3 razy
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Pią 29 Kwi, 2011 14:08
Jeżeli jest to tylko tło, to interesuje nas tylko fragment:
Kod:
hud3 = Cache.picture("Base HP3")
Spróbuj (nie przetestuje, bo nie mam grafik) ten fragment zamienić na:
Kod:
if actor.hp == actor.maxhp
hud3 = Cache.picture(NAZWA)
elsif actor.hp > actor.maxhp * 0,9 # dla więcej niż 90%
hud3 = Cache.picture(NAZWA)
elsif actor.hp > actor.maxhp * 0,8 # dla więcej niż 80%
hud3 = Cache.picture(NAZWA)
elsif actor.hp > actor.maxhp * 0,5 # dla więcej niż 50%
hud3 = Cache.picture(NAZWA)
else # gdy powyższe warunki nie zostaną spełnione
hud3 = Cache.picture(NAZWA)
end
i to powinno wystarczyć. Możesz wstawić więcej warunków zgodnie z powyższym wzorem
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Pią 29 Kwi, 2011 16:48
No bo zapomniałam, że zamiast przecinka w RM powinna być kropka Choć to i tak nie ta linijka kodu. Wróć do wersji pierwotnej - bez powyższego warunku.
Po prostu fragment:
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum