Суббота, 22 Января 2022, 11:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Как реализовать полосу жизней игрока?
Как реализовать полосу жизней игрока?
ArhangelДата: Пятница, 18 Марта 2011, 02:18 | Сообщение # 1
участник
Сейчас нет на сайте
Доброго времени суток уважаемые форумчане.

Подскажите как создать полосу жизней игрока которая в зависимости от состояния здоровья будет меня цвет.
То есть если здоровье 100% полоса зеленого цвета если менее 50% то видна только часть полосы желтым цветом ну а если менее 30% то красным.

Буду благодарен за подсказки, а так же примеры.


Бесплатный хостинг для начинающих игроделов.
Представляю начинающим игроделам браузерных игр бесплатный хостинг, с вашим доменном или своим поддоменом
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. "Титаник" - проффесионалами...
То что я пишу большей частью ИМХО.
Помог? ставь +
tachidiДата: Пятница, 18 Марта 2011, 04:17 | Сообщение # 2
частый гость
Сейчас нет на сайте
<style>

#lifebar {
height: 5px;
width: 100px;
background: #000000;
}

.indicator {
margin: 1px;
height: 3px;
background: #ff0000;
}

</style>

<div id="lifebar">
<div class="indicator" style="width: ***"></div> // * - подгружаете параметр здоровья посредством php, ajax, etc
</div>


4x - 4ever | bbmmog


Сообщение отредактировал tachidi - Пятница, 18 Марта 2011, 13:52
larhДата: Пятница, 18 Марта 2011, 11:49 | Сообщение # 3
был не раз
Сейчас нет на сайте
Если использовать средства пхп то можно так:

$auth['life_max'] - максимальное количество лайфа
$auth['life_cur'] - текущее количество

Code
$life_cap=$auth['life_max']/100;
$life_cur=$auth['life_cur']/$life_cap;
header ("Content-type: image/png");
$img = imagecreatetruecolor(100, 10);
$green = imagecolorallocate($img, 0, 255, 0);
$yellow = imagecolorallocate($img, 255, 255, 0);
$red = imagecolorallocate($img, 255, 0, 0);

if ($life_cur<30){
  $color = $red;
}elseif($life_cur>30 && $life_cur<50){
  $color = $yellow;
}else $color=$green;

imagefilledrectangle($img,0,0,intval($life_cur),10,$color);

imagepng($img);
imagedestroy($img);
DeadibloДата: Пятница, 18 Марта 2011, 20:42 | Сообщение # 4
частый гость
Сейчас нет на сайте
Что значит код $img?
67boyДата: Пятница, 18 Марта 2011, 21:30 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Quote (Deadiblo)
Что значит код $img?

у типа изображение


larhДата: Суббота, 19 Марта 2011, 11:22 | Сообщение # 6
был не раз
Сейчас нет на сайте
$img = imagecreatetruecolor(100, 10);

$img это имя переменной, а imagecreatetruecolor это функция, которая создает изображение =)

wernherДата: Суббота, 19 Марта 2011, 13:24 | Сообщение # 7
Only God is Perfect
Сейчас нет на сайте
Для правильной работы к PHP должна быть подключена GD библиотека.
Некоторые хостинги "обламывают" с ней.


ArhangelДата: Воскресенье, 20 Марта 2011, 06:08 | Сообщение # 8
участник
Сейчас нет на сайте
Я наверное плохо объяснил что мне нужно, вообщем то я уже нашел кажется то что мне нужно

<SCRIPT>
var delay = 2; // задержка изменения очков здоровья
var redHP = 0.33; // меньше 30% красный цвет
var yellowHP = 0.66; // меньше 60% желтый цвет, иначе зеленый
var TimerOn = -1; // id таймера
var tkHP, maxHP;
var speed=100;
var mspeed=100;

//-- Смена хитпоинтов (очков здоровья) со временем
function setHP(value, max, newspeed) {
tkHP=value; maxHP=max;
if (TimerOn>=0) { clearTimeout(TimerOn); TimerOn=-1; }
speed=newspeed;
setHPlocal();
}

function setHPlocal() {
if (tkHP>maxHP) { tkHP=maxHP; }
var sz1 = Math.round((149/maxHP)*tkHP);
var sz2 = 150 - sz1;
if (document.all("HP")) {
document.HP1.width=sz1;
document.HP2.width=sz2;
if (tkHP/maxHP < redHP) { document.HP1.src='items/1red.gif'; }
else {
if (tkHP/maxHP < yellowHP) { document.HP1.src='items/1yellow.gif'; }
else { document.HP1.src='items/1green.gif'; }
}
var s = document.all("HP").innerHTML;
document.all("HP").innerHTML = s.substring(0, s.lastIndexOf(':')+1) + Math.round(tkHP)+"/"+maxHP;
}
tkHP = (tkHP+(maxHP/100)*speed/1000);
if (tkHP<maxHP) { TimerOn=setTimeout('setHPlocal()', delay*100); }
else { TimerOn=-1;
}
}

</SCRIPT>

и вызываю в теге боду вот так
onLoad="setHP((тут сколько после боя к примеру),<?php echo (тут сколько выносливости)*6 ?>,100)"
и от числа здоровья после боя здоровье растет до максимального


Бесплатный хостинг для начинающих игроделов.
Представляю начинающим игроделам браузерных игр бесплатный хостинг, с вашим доменном или своим поддоменом
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. "Титаник" - проффесионалами...
То что я пишу большей частью ИМХО.
Помог? ставь +
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » Как реализовать полосу жизней игрока?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг