forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   LiveBar(полоска жизни) из FPS (http://forum.boolean.name/showthread.php?t=3142)

Horror 10.04.2007 23:24

LiveBar(полоска жизни) из FPS
 
Всем привет! разбираюсь с кодом из фпс!
мне надо чтоб над головой у чела была это полоска с жизнью
делаю спраит над юнитами ну и вот как бы рендерить
эту текстуру в зависимости от жизни [как в ФПС от Импресарио]

Код:


tex=CreateTexture(TextureWidth(dg\texture),TextureHeight(dg\texture))
CopyRect 0,0,TextureWidth(dg\texture),TextureHeight(dg\texture),0,0,TextureBuffer(dg\texture),TextureBuffer(tex)
SetBuffer TextureBuffer(tex)
Color 0,0,0
xs=Float(TextureWidth(dg\texture))/dg\max_count*(dg\max_count-dg\live)
xp=TextureWidth(dg\texture)-xs
Rect xp,0,xs,TextureHeight(dg\texture)
SetBuffer BackBuffer()
EntityTexture dg\sprtlive,tex
FreeTexture tex

вот это в общем тотже код тока яделал все в одном типе ну так вот
еще я при создание пишу
dg\sprtlive=КрейтСпраит
dg\texture=ЛодТекстур(..)
dg\live=300 ЗДОРОВЬЕ ВСЕГО

что не так ? кстати если я пишу вместо выделенного текста число от 1-300
то отображается а так нет

...

зарание пасибо...

alcoSHoLiK 11.04.2007 16:53

Re: LiveBar(полоска жизни) из FPS
 
Цитата:

Сообщение от Horror
что не так ? кстати если я пишу вместо выделенного текста число от 1-300
то отображается а так нет

Видимо, ошибка в типе. Покажи код инициализации и изменения параметра live.

johnk 11.04.2007 18:39

Re: LiveBar(полоска жизни) из FPS
 
Что то я не увидел в коде ошибки...Ошибка видимо в параметре life
PS
Цитата:

как в ФПС от Импресарио
Ай ай...За что ж ты так?

Horror 11.04.2007 20:04

Re: LiveBar(полоска жизни) из FPS
 
Щас не дома написать не смогу
обновление live
чтото вроде

if дистанция(плеер,тп\ент) энд АнимТаим(плеер)=35
тп\live=тп\live-damage
ендиф

alcoSHoLiK 11.04.2007 21:43

Re: LiveBar(полоска жизни) из FPS
 
Сделай проверку параметра live
Код:

тп\live=тп\live-damage
if (live < 1) or (live > 300) DebugLog "ERROR # 32515. Parameter 'live' has wrong value (live = "+live+")"


Horror 11.04.2007 22:14

Re: LiveBar(полоска жизни) из FPS
 
Вложений: 1
не, перменная лив точно уменьшается! т.к у меня проверка если лив <0 то удаляю бота! и все работает!

внизу прикрипил код-лайт(ничего лишнего) )
ну и лив тоже не меняется! покажите что не так плиз

Horror 12.04.2007 21:03

Re: LiveBar(полоска жизни) из FPS
 
Я все еще не разобрался...

alcoSHoLiK 12.04.2007 21:47

Re: LiveBar(полоска жизни) из FPS
 
Код:

xs = максимальное_значение_жизни - dg\live
Когда dg\live = максимальное_значение_жизни, будет рисоваться прямоугольник с нулевой шириной, то есть не будет прямоугольника. Если dg\live = 0, прямоугольник полностью закроет собой полоску жизни. Промежуточные значения соответственно будут отображать текущее состояние жизни.

В твоем коде я внес одно изменение:
Код:

вместо
xs=Float(TextureWidth(dg\texture))/dg\max_count*(dg\max_count-dg\live);
написал
xs = 300 - dg\live

Может, у тебя max_count - это максимальное значение жизни, но я не увидел его инициализации в коде.


Часовой пояс GMT +4, время: 11:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot