forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   хп (http://forum.boolean.name/showthread.php?t=18322)

Demon 06.07.2013 20:56

хп
 
Еще один вопрос. :)
Вот создал хп и мп.
С помощью какой команды сделать так чтобы при столкновение с объектом хп убавлялись.

Global energy,r1,g1,b1,x1,y1,font_power
AppTitle"Power"
Graphics3D 640,480,16,2
font_power=LoadFont("Arial",18,1)
SetBuffer BackBuffer()

camera=CreateCamera()
light=CreateLight()

cone=CreateCone( 32 )
PositionEntity cone,0,0,5

While Not KeyDown( 1 )

TurnEntity cone,1,1,1

RenderWorld()

PositionPower(10,GraphicsHeight()-60)
ColorPower(255,0,0)
Power(100,"Health Power")

PositionPower(10,GraphicsHeight()-38)
ColorPower(0,0,255)
Power(80,"Magic Power")

Flip
Wend
End

Function PositionPower(x,y) ;x,y - позиции полосы энергии на экране
x1=x:y1=y
End Function

Function ColorPower(r,g,b) ;r,g,b - цвет полосы энергии в RGB
r1=r:g1=g:b1=b
End Function

Function Power(energy,text_$) ;energy - заполнение полосы энергии значения от 0 до 100, text_$ - текст
If energy>100 Then energy=100
If energy<0 Then energy=0
Color 255,255,255:Rect x1,y1,104,19,0
Color r1,g1,b1:Rect x1+2,y1+2,energy,15,1
SetFont font_power
Text x1+109,y1+1,text_$
End Function

ant0N 06.07.2013 21:13

Ответ: хп
 
если я правильно понял, то..
сначала назначаешь коллизии
Код:

Const TypePlayer = 1, TypeEnemy = 2
EntityType player, TypePlayer
EntityType enemy, TypeEnemy
Collisions TypePlayer, TypeEnemy, 2, 2

а потом:
Код:

if EntityCollided (player, TypeEnemy)
    ; тут убавляешь
endif


Demon 06.07.2013 22:19

Ответ: хп
 
if EntityCollided (player, TypeEnemy)
; тут убавляешь что писать -1Health Power или как просто не оч разбираюсь :(
endif

Nex 06.07.2013 23:04

Ответ: хп
 
Код:

if EntityCollided (player, TypeEnemy)
health = health -1
endif

еще надо сделать задержку какую нибудь при отнимании хп/мп иначе при столкновении у тебя тут же отнимутся все хп/мп.

Demon 06.07.2013 23:09

Ответ: хп
 
написал игра запустилась но при столкновение с объектом хп не убавляются :(

Nex 06.07.2013 23:19

Ответ: хп
 
Для начала вопрос. Ты переменную "health" заменил на свою (energy)?

Если да то в данной ситуации помогает дебаг.
Код:

if EntityCollided (player, TypeEnemy)
health = health -1
DebugLog "123"
endif

если в маленьком окошке под окном с игрой появиться "123" значит происходит столкновение и должно отниматься хп/мп

Demon 06.07.2013 23:27

Ответ: хп
 
все равно не никак :(

ant0N 06.07.2013 23:54

Ответ: хп
 
Код в студию :-)

Demon 07.07.2013 00:22

Ответ: хп
 
Вложений: 1
вот архив посмотрите если сможете сделайте:
нормальный прыжок
анимированную воду
ну и чтоб хп убавлялись:)

PREy 07.07.2013 01:48

Ответ: хп
 
Вложений: 1
Не знаю что я с ним сделал, но ОНО заработало :crazy:

Demon 07.07.2013 11:28

Ответ: хп
 
всем спасибо сделал :)

Nex 09.07.2013 15:19

Ответ: хп
 
У тебя у хп и мп одна и таже переменная "energy". Над две делать.
В функции Power в параметрах у тебя стоит переменная "energy". Т.е. ты назначаешь переменной 100 единиц, отнимаешь 1 при столкновении и в следующем цикле снова назначаешь 100 единиц.
Объявляй все стартовые значения перед циклом.

А так же путь до текстур и моделей надо объявлять от папки с игрой.
Код:

tex=LoadTexture("texture\dirt.png")
иначе твоя игра не у кого не будет работать.


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

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