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"
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: