CrasheR - Wto 26 Kwi, 2011 12:34 Temat postu: Pomoc z ruby.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.Ayene - Wto 26 Kwi, 2011 13:35 Ale czego 80%? Ukończonej gry? HP? Nie można wyliczyć części bez całości CrasheR - Sro 27 Kwi, 2011 16:12 Sorki myślałem, że napisałem czego :P HP oczywiście.Ayene - 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ę CrasheR - Pią 29 Kwi, 2011 13:53 Nie wiem jak to dodać Dodaję skrypcik.
Spoiler:
#==============================================================================
# **Kingdom Hearts HUD
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Jako actor.png wstawcie zdjęcie swojego bohatera.
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
Ayene - Pią 29 Kwi, 2011 13:55 I która grafika ma się zmieniać? CrasheR - Pią 29 Kwi, 2011 13:57 Pasek Hp :PAyene - Pią 29 Kwi, 2011 13:58 Czyli Ty chcesz zrobić zwykły pasek HP?! To nie mogłeś od razu tak napisać? Przecież są skrypty na gotowe paski HP CrasheR - Pią 29 Kwi, 2011 13:59 Mam kilka zdjęć paska hp (od 100% do 0%) . I chcę aby kiedy gracz ma 100% pokazała się grafika nr 1 kiedy 90% grafika nr 2 i tak do 0%.
Przepraszam, że wprowadziłem Cię w błąd.Ayene - 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 CrasheR - Pią 29 Kwi, 2011 14:12 Wyskakuje błąd "Syntax Error"
elsif actor.hp > actor.maxhp * 0,9 # dla więcej niż 90%
Dodaję Grafikę .Ayene - 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: