[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Полоска жизни,маны и др.
dfДата: Суббота, 20 Декабря 2008, 02:35 | Сообщение # 1
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
код сделан под любое количество жизни(на сколько хватит фантазии)
надеюсь разберетесь

вот собственно код:

Code
width=800
height=600
Graphics3D width,height,32,1

type_user=1     
type_bot=4
type_heat=5

type_ps=6
type_bot1=7

Collisions type_user,type_bot,2,2
Collisions type_user,type_heat,2,2

Collisions type_user,type_bot1,2,2
Collisions type_user,type_ps,2,2

a=CreateTexture(100,100); текстуру можно просто загрузить из файла
For t = 0 To 9
SetBuffer TextureBuffer(a)    
For y = 1 To 500    
Plot Rnd(32),Rnd(32)    
Next    
Next  

SetBuffer BackBuffer()
;===Персонаж====
;Параметры
PlayerHP=1000
PlayerSP=1000

;предел параметров
PlayerHP_max=1000
PlayerSP_max=1000

;===Проверка жизни===
bot=CreateCube()
EntityColor bot,255,1,1
PositionEntity bot,0,3,6
ScaleEntity bot,1,2,1
EntityType bot,type_bot
EntityRadius bot,1.8

bir=CreateCube()
EntityColor bir,255,255,0
PositionEntity bir,10,3,6
ScaleEntity bir,1,2,1
EntityType bir,type_heat
EntityRadius bir,1.8

;===Проверка маны===
boti=CreateCube()
EntityColor boti,0,255,255
PositionEntity boti,-3,3,6
ScaleEntity boti,1,2,1
EntityType boti,type_bot1
EntityRadius boti,1.8

biro=CreateCube()
EntityColor biro,0,0,255
PositionEntity biro,-10,3,6
ScaleEntity biro,1,2,1
EntityType biro,type_ps
EntityRadius biro,1.8

user=CreateCube()     
PositionEntity user,0,1.5,0    
EntityType user,type_user    
EntityRadius user,1.8

svet=CreateLight()      
cam=CreateCamera()     
EntityParent cam,user     
PositionEntity cam,0,15,-20

pl=CreatePlane(); сделаем плоскость
EntityTexture pl,a; и наклеим на нее свежесделанную текстурку  

While Not KeyDown(1)

If KeyDown(200) MoveEntity user,0,0,0.2
If KeyDown(208) MoveEntity user,0,0,-0.2
If KeyDown(203) TurnEntity user,0,0.8,0
If KeyDown(205) TurnEntity user,0,-0.8,0

;===понижатели пареметров+ повышатели параметров
If EntityCollided (user,type_bot) PlayerHP = PlayerHP - 1
If PlayerHP<0 Then PlayerHP=0
If EntityCollided (user,type_heat) PlayerHP = PlayerHP+ 1
If PlayerHP>PlayerHP_max Then PlayerHP=PlayerHP_max

If EntityCollided (user,type_bot1) PlayerSP = PlayerSP - 1
If PlayerSP<0 Then PlayerSP=0
If EntityCollided (user,type_ps) PlayerSP= PlayerSP + 1
If PlayerSP>PlayerSP_max Then PlayerSP=PlayerSP_max

;===расчет параметров в процент==
PlayerHP_P=PlayerHP/(PlayerHP_max/100);= именно это строка нам дает размер полоски ХР в 100 пикселей
PlayerSP_P=PlayerSP/(PlayerSP_max/100)

UpdateWorld()

RenderWorld()

Color 255,255,255
Text 60,20,PlayerHP_max+"/"+PlayerHP
Text 60,52,PlayerSP_max+"/"+PlayerSP

;===вывод информации о параметрах===
If PlayerHP=0 Then Text 250,100, "Вы труп"
If PlayerSP=0 Then Text 250,100,"Недостаточно Энергии"

Color 255,0,0
Rect 36, 12, PlayerHP_P, 7, 1

Color 0,255,255
Rect 36, 44, PlayerSP_P, 7, 1

Flip

Wend

End  

P.S. не нужно говорить что нужно было писать в существующей теме, народ не любит долго искать.



 
dfДата: Воскресенье, 21 Декабря 2008, 15:58 | Сообщение # 2
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
ну да.
там появляется сообщение"Вы труп"
я с настоявшей смертью(на панель сохранении или месту последнего сохранения(в пространстве как в онлайн)) еще не работал.



 
diman666777Дата: Воскресенье, 21 Декабря 2008, 16:05 | Сообщение # 3
Группа: Удаленные





df, ты труп забиратъ буш? (моделько) cool

Сообщение отредактировал diman666777 - Воскресенье, 21 Декабря 2008, 19:55
 
dfДата: Воскресенье, 21 Декабря 2008, 17:54 | Сообщение # 4
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
тема про полоску
а не про последствия при смерти



 
artemДата: Воскресенье, 21 Декабря 2008, 18:59 | Сообщение # 5
Врубающийся
Группа: Участники
Сообщений: 39
Награды: 0
Замечания: 0%
Статус:
логично biggrin

Чем тоньше лед, тем больше хочется проверить, насколько толстый он
 
SharkboyДата: Суббота, 03 Января 2009, 05:48 | Сообщение # 6
Продвинутый
Группа: Участники
Сообщений: 117
Награды: 0
Замечания: 0%
Статус:

Команда: GoD
Quote (df)
;===расчет параметров в процент==
PlayerHP_P=PlayerHP/(PlayerHP_max/100);= именно это строка нам дает размер полоски ХР в 100 пикселей
PlayerSP_P=PlayerSP/(PlayerSP_max/100)

Помоему лучше заменить на PlayerHP_P и PlayerSP_P на 100, тогда при любом значении хп и сп полоски будут выглядеть одинаково.


« Настоящие программеры не сдаются! (…они просто ленятся… =) )»

 
ASXCДата: Суббота, 03 Января 2009, 10:20 | Сообщение # 7
Бывалый
Группа: Участники
Сообщений: 93
Награды: 0
Замечания: 0%
Статус:
Sharkboy, если одинаково то какая теберазнца! bash
 
  • Страница 1 из 1
  • 1
Поиск: