forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   HP в Blitz (http://forum.boolean.name/showthread.php?t=15104)

Clip 12.07.2011 01:22

HP в Blitz
 
Выложите пожалуйста пример жизней в blitz

Clip 12.07.2011 01:38

Ответ: HP в Blitz
 
UP(10 sim)

Mr_F_ 12.07.2011 02:14

Ответ: HP в Blitz
 
health = 100

function kill()
health = 0; :(((
end function

IGR 12.07.2011 02:33

Ответ: HP в Blitz
 
пример жизней нужно именно 3д, а то есть только 2д ?? :(


А лучше конечно задай конкретный вопрос !! ;)

impersonalis 12.07.2011 10:25

Ответ: HP в Blitz
 
http://forum.boolean.name/showthread.php?t=15

Raion 12.07.2011 15:41

Ответ: HP в Blitz
 
Можно реализовать через спрайт с текстурой. Смотри: CreateSprite, ScaleSprite, EntityParent, PositionEntity, PositionTexture

Nerd 12.07.2011 19:10

Ответ: HP в Blitz
 
А как вы поняли что он имеет ввиду?

moka 12.07.2011 19:14

Ответ: HP в Blitz
 
Невозможно понять. Это не правильно поставленный вопрос к такого рода вопросу.
Можно лишь предположить что автор хочет.
Недостаточно конкретики.

Очень не разумный вопрос..

Mark Castle 12.07.2011 23:30

Ответ: HP в Blitz
 
Парень не знает, чего хочет. Напиши понятно и конкретно!

LLI.T.A.L.K.E.R. 13.07.2011 01:56

Ответ: HP в Blitz
 
Простым языком (не кодом) примерно такое, наверное:
у игрока жизни есть, если игрока ударяют или по нему стреляют - жизни убавляются. Так же если игрок задевает опасные предметы, места - жизни снижаются..
ОЙ НЕ жизни, а здоровье. Дальше...
Если здоровье на нуле - жизнь минусуется. Так продолжается, пока жизни не будут на нуле.
Игрок может пополнять здоровье и жизнь собирая некие предметы, или зарабатывая очки.

Требуется написать универсальную
function Jizn_on_Blitz(...,...,...,...,...,...,...,...,...)

Clip 17.07.2011 17:09

Ответ: HP в Blitz
 
Выложите код. Просто жизней. И как их снимать и прибавлять

den 17.07.2011 17:19

Ответ: HP в Blitz
 
health = 100

function plus(a)
health = health + a
end function

function minus(a)
health = health - a;
end function

L-ee-X 17.07.2011 17:20

Ответ: HP в Blitz
 
Напишу по русски...
Если пуля бота задела игрока, то от переменной жизни игрока отнимаем 1 и на оборот...
Теперь в коде.
PHP код:

If (Пуля Ботазадел (Игрока)
hp_player hp_player -1
EndIf
If (
Пуля Игроказадела (Бота)
hp_bot hp_bot -1
EndIf 


Nex 17.07.2011 17:44

Ответ: HP в Blitz
 
Жми "Пробел".
Код:

Graphics 320,240,32,2

health# = 100

While Not KeyDown (1)
Cls ()
        If KeyDown (57) Then health = health -0.1
                If health <=0 Then
                        Text 0,0,"Вы умерли"
                        Delay 1000
                        End
                Else
                        Text 0,0,health
                EndIf
Flip
Wend
End


Clip 17.07.2011 21:07

Ответ: HP в Blitz
 
Всем спасибо за ответы)) каждое попробую

L-ee-X 17.07.2011 23:20

Ответ: HP в Blitz
 
Цитата:

Сообщение от Clip (Сообщение 195856)
Всем спасибо за ответы)) каждое попробую

А кнопочка для чего? ;)

L-ee-X 18.07.2011 01:30

Ответ: HP в Blitz
 
Цитата:

Сообщение от Clip (Сообщение 195856)
Всем спасибо за ответы)) каждое попробую

Держи, потратил 5 минут на написание, зная справку и умея мыслить :)
Нежели ты убил на форуме для поиска ответа целую неделю :-D
PHP код:

HidePointer
Graphics3D 640
,480,32,2
SetBuffer BackBuffer
()

size_y%=32
size_x
%=240
ind_size_x
%=(240-2)
ind_size_y%=32-2

Blue
% = 255

Repeat
If KeyHit(1Then End
Cls
RenderWorld
UpdateWorld

If KeyDown(2)
ind_size_x% = ind_size_x% -1
Red
% = Red% +1
Blue
% = Blue% - 1
EndIf

If 
KeyDown(3)
ind_size_x% = ind_size_x% +1
Red
% = Red% - 1
Blue
% = Blue% + 1
EndIf

If 
ind_size_x% > 238 Then ind_size_x% = 238
If ind_size_x% < 0 Then ind_size_x% = 0

If Red% > 255 Then Red% = 255
If Red% < 0 Then Red% = 0

If Blue% > 255 Then Blue% = 255
If Blue% < 0 Then Blue% = 0

Color 255
,255,255
Rect 10
,10,size_x,size_y,
Color Red
% + 0,Green% + 0,Blue%
Rect 11,11,ind_size_x,ind_size_y
Flip

Forever 

Набросан так примерно, думаю дальше разберешься и поймешь...
Кнопками 1 и 2 отнимать и прибавлять...

Nex 18.07.2011 09:20

Ответ: HP в Blitz
 
Цитата:

Сообщение от L-ee-X (Сообщение 195878)
А кнопочка для чего? ;)

сожги себя.

L-ee-X 18.07.2011 09:42

Ответ: HP в Blitz
 
Цитата:

Сообщение от Nex (Сообщение 195927)
сожги себя.

Уахахахаха!!! Это тебе АП стену убиться надо...
И вообще, что то не понял, к чему ты это написал а? Объясни свой ход мыслей, когда ты это писал...

Clip 18.07.2011 16:29

Ответ: HP в Blitz
 
L-ee-X, хотелось бы узнать... А возможно ли подключать этот код через include ? Просто говорили что можно делать dll, а я хз как

den 18.07.2011 17:12

Ответ: HP в Blitz
 
Писать длл из 1 переменной и пары функций...
Оригинально:-)

Clip 18.07.2011 17:17

Ответ: HP в Blitz
 
Цитата:

Сообщение от Den (Сообщение 195999)
Писать длл из 1 переменной и пары функций...
Оригинально:-)

И что? я же не игру собираюсь писать. Это как-бы для практики.

Mr_F_ 18.07.2011 17:42

Ответ: HP в Blitz
 
Цитата:

Ответ: HP в Blitz
L-ee-X, хотелось бы узнать... А возможно ли подключать этот код через include ? Просто говорили что можно делать dll, а я хз как
ржал как дурак

L-ee-X 18.07.2011 18:26

Ответ: HP в Blitz
 
Цитата:

Сообщение от Clip (Сообщение 195989)
L-ee-X, хотелось бы узнать... А возможно ли подключать этот код через include ? Просто говорили что можно делать dll, а я хз как

PHP код:

Include "HP.bb"
Graphics3D 640,480,16,2

Repeat
Cls
HP_UP
(2)
HP_DOWN(3)

RenderWorld
UpdateWorld
Update_HP
()
Flip
Until KeyHit
(1)
End 

Файл HP.bb
PHP код:

Global size_y%=32
Global size_x%=240
Global ind_size_x%=(240-2)
Global 
ind_size_y%=32-2
Global Blue% = 255
Global Red%

Function 
HP_DOWN(key%)
If 
KeyDown(key%)
ind_size_x% = ind_size_x% -1
Red
% = Red% +1
Blue
% = Blue% - 1
EndIf
End Function

Function 
HP_UP(key%)
If 
KeyDown(key%)
ind_size_x% = ind_size_x% +1
Red
% = Red% - 1
Blue
% = Blue% + 1
EndIf
End Function 

Function 
Update_HP()
If 
ind_size_x% > 238 Then ind_size_x% = 238
If ind_size_x% < 0 Then ind_size_x% = 0
If Red% > 255 Then Red% = 255
If Red% < 0 Then Red% = 0
If Blue% > 255 Then Blue% = 255
If Blue% < 0 Then Blue% = 0
Color 255
,255,255
Rect 10
,10,size_x,size_y,
Color Red
% + 0,Green% + 0,Blue%
Rect 11,11,ind_size_x,ind_size_y
End 
Function 

Вот.
Условия при которых будут отниматься жизни и прибавляться можешь сам писать...
Я просто так на примере клавиш написал...

Clip 18.07.2011 18:43

Ответ: HP в Blitz
 
Я нашел способ по другому и по легче. Но все равно спасибо

LLI.T.A.L.K.E.R. 18.07.2011 19:47

Ответ: HP в Blitz
 
Цитата:

Сообщение от Clip (Сообщение 196024)
Я нашел способ по другому и по легче. Но все равно спасибо

Надеюсь ты применяешь её не тупо как "клавиша вниз - уменьшение жизней"...
А как полагается: враг нанёс удар - уменьшение жизней.. аптечки и т.д...

Clip 18.07.2011 19:51

Ответ: HP в Blitz
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 196032)
Надеюсь ты применяешь её не тупо как "клавиша вниз - уменьшение жизней"...
А как полагается: враг нанёс удар - уменьшение жизней.. аптечки и т.д...

Нет. Я пока что практикуюсь. Так что мне нету смысла использовать как аптечку и т.д. Вообще экспериментирую с каждой функцией, которая есть в хелпе. Щас рассматриваю работу с файлами

Nex 18.07.2011 20:59

Ответ: HP в Blitz
 
Цитата:

Объясни свой ход мыслей, когда ты это писал...
Да как бы и так все понятно..

Clip 18.07.2011 21:14

Ответ: HP в Blitz
 
Цитата:

Сообщение от Nex (Сообщение 196041)

Да как бы и так все понятно..

Ребят, давайте в ЛС :)

NitE 18.07.2011 21:24

Ответ: HP в Blitz
 
Сначала написать вот так:
PHP код:

hp=100 

Потом жизньи отнимать вот так:
PHP код:

hp=hp-

Вот так это делается в кризис 2.

Цитата:

Но весь прикол открывается, когда прочитаеш, то что написано на самой кнопке =)
И в чем прикол ?

NitE 18.07.2011 21:31

Ответ: HP в Blitz
 
Поставил не за юмор, даже если он там есть. А у тебя спрашиваю - в чем прикол ? Может я что-то пропустил, тогда тоже посмеюсь.

L-ee-X 18.07.2011 21:39

Ответ: HP в Blitz
 
Для тех кто в танке:
Мне пох че я там написал, в посте было написано, всем спасибо попробую каждый пример что описан!!! Но не в одном посте кто бы ему не написал я не увидел благодарностей... Поэтому и написал что существует кнопка Полезно!, а не отдельный пост писать всем спасибо... Можно было обойтись без поста нажав кнопку Полезно! Вот тогда бы сразу видно было кому он благодарен за помощь...

L-ee-X 18.07.2011 21:46

Ответ: HP в Blitz
 
Цитата:

Сообщение от Мистер Розовый (Сообщение 196068)
Ну как бы вся шутка и основана на том, что смысл этой кнопки двоякий =) Ты довольствовался первым смыслом, а Nex вторым.:-D

Лично я могу сделать один вывод, что шутка реально тупая...
Или здесь просто шибком заумные люди сидят... Вроде Nex'a

Nex 19.07.2011 00:13

Ответ: HP в Blitz
 
Я не шутил.
Цитата:

сожги себя
к тому, что как будто кнопка "полезно" что то изменит..
Понимаю, что когда человек постит "спасибо" во избежание флуда в будущем отвечаешь ему, что есть кнопка "полезно", но опять же это порождает флуд.
как@то@так.

Clip 19.07.2011 00:44

Ответ: HP в Blitz
 
Я вот думаю.. А зачем это кнопка "полезно"?
Я думаю человеку будет приятно увидеть "спасибо", а не написанное им полезных сообщений

NitE 19.07.2011 01:05

Ответ: HP в Blitz
 
Цитата:

а не написанное им полезных сообщений
Щито ?

А раньше была кнопка "Спасибо", но кому-то не нравилось - поменяли на "Полезно!". (Впринципе пох, но всётаки имхо кнопка "Спасибо" лучше отражает суть её смысла.)

Randomize 19.07.2011 01:05

Ответ: HP в Blitz
 
Цитата:

Сообщение от Clip (Сообщение 196099)
Я вот думаю.. А зачем это кнопка "полезно"?
Я думаю человеку будет приятно увидеть "спасибо", а не написанное им полезных сообщений

Именно именно! Спасибо написанное сообщением это больше чем просто однокликовая спасибка. Набивать спасибки - фуу.

Артем Валерьевич 21.07.2011 08:48

Ответ: HP в Blitz
 
Может в Биореактор темку то? А что я не прав? Полезно или не?

Нажмите полезно и разошлите друзьям!

Жека 25.07.2011 09:02

Ответ: HP в Blitz
 
Вложений: 1
Дословно говоря, HP - это Health Points. А в ответах даёте линии - Health Bar!
Это так, к слову.
Я сделал примерчик, в котором есть и полоска жизней, и "сердечки" жизней.
Жизни самовосстанавливаются при бездействии.
Отнимать жизни нажатием на пробел.
Есть цветовая градация шкалы в зависимости от количества (уровня) жизней.

Исходник:

Код:


Global heroHealthMax% = 100
Global heroHealth% = heroHealthMax
Global heroLives% = 5

Global heroHealthAccum# ;для автовосстановления жизней

Graphics (400, 400)
AppTitle ("HP and HB")
;SetBuffer (BackBuffer ())
ClsColor (150,200,150)

While (Not (KeyHit(1)))

        ;восстановление жизней
        If(heroHealth < heroHealthMax)
                heroHealthAccum = heroHealthAccum+0.25
                If(heroHealthAccum >= 1)
                        heroHealth = heroHealth+heroHealthAccum
                        heroHealthAccum = 0
                EndIf
        EndIf

        ;отнимание жизней
        If(KeyDown (57))
                heroHealth = heroHealth-1
                heroHealthAccum = 0
                If(heroHealth <= 0)
                        heroLives = heroLives-1 ;отнимаем "сердечко"
                        heroHealth = heroHealthMax
                EndIf
        EndIf

        ;рисуем
        fnDrawHealthPoints(10,8,10)
        fnDrawHealthBar(10,30,100,20)
        Flip()
        Cls()

        Delay(50) ;простой ограничитель кадров
       
Wend

End

;рисование "сердечек" жизней
Function fnDrawHealthPoints(x%, y%, size%=10)
        Color (130,30,130)
        For k%=0 To heroLives-1
                Oval (x, y, size, size)
                Rect(x+size*0.25,y+size*0.8,size*0.5,size*0.5)
                x = x+size*2
        Next
End Function

;рисование полоски жизней
Function fnDrawHealthBar(x%, y%, w%=100, h%=20)

        ;рамка и подложка
        Color(130,130,130)
        Rect(x,y,w,h,1)
        Color(50,50,50)
        Rect(x-1,y-1,w+2,h+2,0)
       
        ;разные цвета в зависимости от количества жизней
        If(heroHealth > heroHealthMax*0.75)
                Color (0,250,0)
        ElseIf(heroHealth > heroHealthMax*0.5)
                Color (210,210,0)
        ElseIf(heroHealth > heroHealthMax*0.25)
                Color (230,0,0)
        Else
                If(MilliSecs () Mod 1000 < 500)
                        Color (250,0,0)
                Else
                        Color (150,0,0)
                EndIf
        EndIf

        Rect(x,y,w*heroHealth/heroHealthMax,h)
       
End Function


FREE MAN 25.07.2011 15:00

Ответ: HP в Blitz
 
Мой пример HP... может кому то и пригодится

Код:


Graphics3D 1024,768,32,1
fntArial=LoadFont("Arial",24)

cam = CreateCamera()
MoveEntity cam,0,0,-5
CameraRange cam,.1,1000
CameraClsColor cam,100,100,100


Global scalex#=.045
Global scaley#=.007
Global HP=CreateSprite(cam)
PositionEntity HP,-.05,0,.3

ScaleSprite HP,scalex,scaley
HandleSprite HP,-1,-1
EntityOrder  HP,-2
tex_pp=LoadTexture ("hud_life.png")
EntityTexture HP,tex_pp
;
Global HP2=CreateSprite(hp)
PositionEntity HP2,.0435,.009,.1
ScaleSprite HP2,.061,.01
EntityColor HP2,0,0,0

SetFont fntArial
Repeat

If KeyDown(203) Then
        ScaleSprite HP,scalex,scaley
scalex=scalex-.0005
EndIf

If KeyDown(205) Then
        ScaleSprite HP,scalex,scaley
scalex=scalex+.0005
EndIf



If scalex>.045 Then scalex=.045
If scalex<0 Then scalex=0


UpdateWorld ()
RenderWorld ()
Flip 1
Until KeyHit(1)
End


impersonalis 25.07.2011 16:47

Ответ: HP в Blitz
 
http://forum.boolean.name/showpost.p...46&postcount=5

Жека 25.07.2011 17:43

Ответ: HP в Blitz
 
Цитата:

Сообщение от impersonalis (Сообщение 196714)

у тебя клёвый тутор:) но не каждый осилит такой объём.
хотя, естественный отбор полезен:)


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

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