Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 10.04.2007, 23:24   #1
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
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
то отображается а так нет

...

зарание пасибо...
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 16:53   #2
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: LiveBar(полоска жизни) из FPS

Сообщение от Horror
что не так ? кстати если я пишу вместо выделенного текста число от 1-300
то отображается а так нет
Видимо, ошибка в типе. Покажи код инициализации и изменения параметра live.
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 18:39   #3
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: LiveBar(полоска жизни) из FPS

Что то я не увидел в коде ошибки...Ошибка видимо в параметре life
PS
как в ФПС от Импресарио
Ай ай...За что ж ты так?
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 20:04   #4
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: LiveBar(полоска жизни) из FPS

Щас не дома написать не смогу
обновление live
чтото вроде

if дистанция(плеер,тп\ент) энд АнимТаим(плеер)=35
тп\live=тп\live-damage
ендиф
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 21:43   #5
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: LiveBar(полоска жизни) из FPS

Сделай проверку параметра live
тп\live=тп\live-damage
if (live < 1) or (live > 300) DebugLog "ERROR # 32515. Parameter 'live' has wrong value (live = "+live+")"
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 22:14   #6
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: LiveBar(полоска жизни) из FPS

не, перменная лив точно уменьшается! т.к у меня проверка если лив <0 то удаляю бота! и все работает!

внизу прикрипил код-лайт(ничего лишнего) )
ну и лив тоже не меняется! покажите что не так плиз
(Offline)
 
Ответить с цитированием
Старый 12.04.2007, 21:03   #7
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: LiveBar(полоска жизни) из FPS

Я все еще не разобрался...
(Offline)
 
Ответить с цитированием
Старый 12.04.2007, 21:47   #8
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
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 - это максимальное значение жизни, но я не увидел его инициализации в коде.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lib_line32 - Горизонтальная полоска элементов odd Библиотеки 7 29.09.2009 21:59
Инструкция к жизни Yalenz Болтовня 18 02.05.2009 09:48
Цена жизни Koruna Проза 3 07.02.2008 20:21
Случай из жизни magpro Юмор 11 07.09.2007 14:35
Фотоцитатник жизни jimon Юмор 2 23.11.2006 00:14


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com