UltimaForum

Wsparcie [VX] - HP Orb - Problem

Quario - Sob 30 Mar, 2013 19:21
Temat postu: HP Orb - Problem
Witam, chciałbym zrobić hud, w którym zamiast paska HP byłaby kula (tak jak w diablo). Problem polega na tym, że mając taki kod :
Kod:
hpbar = Cache.picture("hp")
    hpwidth = hpbar.width
    hpheight = hpbar.height * @actor.hp / @actor.maxhp
    hpbar_rect = Rect.new(0,0,hpwidth,hpheight)
    self.bitmap.blt(226,0,hpbar,hpbar_rect)

Kula opróżnia się od dołu.

Pytanie zatem mam takie czy ktoś wie jak to obrócić?

Ayene - Sob 30 Mar, 2013 20:32

Spróbuj może powyższy fragment zamienić na:
Kod:
maxhp = @actor.maxhp
    hp = @actor.hp
    hpbar = Cache.picture("hp")
    cw = hpbar.width
    ch = hpbar.height   
    rate = (hp < maxhp ? hp * ch / maxhp : ch)   
    hpbar_rect = Rect.new(0, ch-rate, cw, rate)
    self.bitmap.blt(226,0-rate, hpbar, hpbar_rect)

zrób wpierw kopię zapasową, bo robiłam "na sucho".

Quario - Sob 30 Mar, 2013 20:43

Nie działa :(
Jeżeli to w czymś pomoże to wstawiłem demko :)

http://www2.zippyshare.com/v/46896982/file.html

Ayene - Sob 30 Mar, 2013 20:59

Podmień wcześniejsze na:
Kod:
hpbar = Cache.picture("hp")
    rate = (@actor.maxhp > 0 ? @actor.hp.to_f / @actor.maxhp : 0)     
    bb = hpbar.height - hpbar.height * rate
    hpbar_rect = Rect.new(0, bb, hpbar.width, hpbar.height)
    self.bitmap.blt(226,0 + bb, hpbar, hpbar_rect)

Quario - Sob 30 Mar, 2013 21:04

Jesteś wielka ! :zeby: działa, dziękuje za szybką odpowiedź :ahoy:

Powered by phpBB modified by Przemo © 2003 phpBB Group