Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.09.2010, 13:19
DenverZ вне форума Посмотреть профиль Отправить личное сообщение для DenverZ Найти все сообщения от DenverZ
  № 1  
Ответить с цитированием
DenverZ

Регистрация: May 2010
Сообщений: 59
По умолчанию полоса жизни, как создать?

Здравствуйте,
подскажите плиз, как правильно сделать полосу жизней (для героя или монстров) ?

на данный момент сделал (но работает не совсем верно):

создал три символа
1) белый прямоугольник, с черным контуром, 100 пикселей шириной и 5 пикселей высотой (имя: mc_LiveBorder)
2) красный прямоугольник без контуров, ширина 100, высота 5 (имя: mc_LiveRed)
3) зеленый прямоугольник без контуров, ширина 100, высота 5 (имя: mc_LiveGreen)

далее например для героя:

Код AS3:
private var liveRed:MovieClip;
private var liveGreen:MovieClip;
private var live:MovieClip;
далее

Код AS3:
live = new mc_LiveBorder();
live.x = 5;
live.y = 5;
 
liveRed = new mc_LiveRed();
liveGreen = new mc_LiveGreen();
 
live.addChild(liveRed);
live.addChild(liveGreen);
addChild(live);
собственно в левом верхнем углу есть полоска жизни героя
далее уменьшаю жизни по формуле:

Код AS3:
liveGreen.width -= (damage * live.width) / 100;
где damage - это урон герою, например 5
live.width - ширина полоски, в данном примере 100

для героя уменьшается все ок, а вот если создать монстра и прицепить к нему полосу длиной например 30 пикселей, все идет коту под хвост =) ничего не работает...

вижу, что все сделано топорно и не верно, я новичек и только учусь
подскажите плиз, как правильно сделать полосу жизни и главное, как правильно ее уменьшать, не зависимо от ее ширины

т.е. если по русски, как мне привязать кол-во жизней героя/монстра к полоске, причем полоса фиксированного размера, например не более 100 пикселей (что бы в диз вписалась), а вот кол-во жизней может быть разной, 10 или 500 не важно, при любом раскладе 10 или 500 она должна быть заполнена полностью, а вот когда наносят урон, уменьшалась исходя из урона
т.е. пример:

полоса 100 пикселей,
заполнена 200 жизней
т.е. на данном этапе она полностью на 100% заполнена зеленым
наносят урон, например 30
полоска должна уменьшится на 15% (вроде правильно написал? (30 / 200) * 100)

заранее благодарю

Добавлено через 2 минуты
Забыл добавить, что полоса width может быть любой, в зависимости от того, к кому цепляется
например у героя ее ширина будет 100, а у монстра может быть 30

Старый 22.09.2010, 13:29
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Код AS3:
lifeLine.scaleX = HP/maxHP;
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 22.09.2010 в 13:34.
Старый 22.09.2010, 13:31
DenverZ вне форума Посмотреть профиль Отправить личное сообщение для DenverZ Найти все сообщения от DenverZ
  № 3  
Ответить с цитированием
DenverZ

Регистрация: May 2010
Сообщений: 59
чет не то...

Старый 22.09.2010, 15:08
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от DenverZ Посмотреть сообщение
чет не то...
Совершенно правильно вам подсказали. Смотрите, какой бы полоса ни была шириной, её scaleX изначально равна 1, то-есть 100%
Например есть монстр, у него 30 жизней, урон по нему отнял 15 жизней - половину.
Код AS3:
var monsterMaxLife=30
var monsterLife=30;
monsterLife-=15;
monsterLifeBar.scaleX=monsterLife/monsterMaxLife;//0.5

Старый 22.09.2010, 16:33
DenverZ вне форума Посмотреть профиль Отправить личное сообщение для DenverZ Найти все сообщения от DenverZ
  № 5  
Ответить с цитированием
DenverZ

Регистрация: May 2010
Сообщений: 59
ага теперь все понятно, спасибо :-)

спасибо DE
спасибо Samana

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.