forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   типы в блитзе (http://forum.boolean.name/showthread.php?t=2867)

vadya 05.03.2007 06:57

типы в блитзе
 
кто нить покажите на этом коде пример использования типов.надо создать 5 ботов(сфер) и если у бота здоров=0 то удалить его и если можно то без полного перебора в гл.цикле.
Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
Global zdorov=100

Const pl=1,bott=2
SeedRnd MilliSecs()

l = CreateLight()
RotateEntity l, 0, 45, 0
PositionEntity l,0,51,0



pla=CreatePlane()
ScaleEntity pla, 1000, 1, 1000
PositionEntity pla,0,0,0
EntityColor pla,0,255,0

Player=CreateCube()
PositionEntity player ,15,3,15
EntityColor player,255,0,0
EntityType player,pl
cam= CreateCamera(player)
PositionEntity cam,0,5,-10

bot=CreateSphere()
PositionEntity bot ,15,3,30
EntityColor bot,0,0,255
EntityType bot,bott

Collisions pl,bott,1,2

Repeat

If KeyDown(200) MoveEntity Player,0,0,1
If KeyDown(205) TurnEntity Player,0,-3,0
If KeyDown(203) TurnEntity Player,0,3,0

If EntityCollided(player,bott)If KeyHit(57) Then zdorov=zdorov-Rnd(40,60)
If zdorov<=0 Then HideEntity bot

UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
ПОЖАЛУЙСТА

moka 05.03.2007 07:37

Re: типы в блитзе
 
[blitz]
Type Bot ;Massiv Bota
Field Entity ;Sfera
Field Life% ;Zdorovje
End Type

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
Global zdorov=100

Const pl=1,bott=2
SeedRnd MilliSecs()

l = CreateLight()
RotateEntity l, 0, 45, 0
PositionEntity l,0,51,0

pla=CreatePlane()
ScaleEntity pla, 1000, 1, 1000
PositionEntity pla,0,0,0
EntityColor pla,0,255,0

Player=CreateCube()
PositionEntity player ,15,3,15
EntityColor player,255,0,0
EntityType player,pl
cam= CreateCamera(player)
PositionEntity cam,0,5,-10

For n=1 to 5 ;Sdelatj Patj Raz
b.Bot=New Bot ;Novij element v massiv
b\Entity=CreateSphere() ;Sozdajom Sfery
PositionEntity b\Entity ,15,3,30
EntityColor b\Entity,0,0,255
EntityType b\Entity,bott
Next

Collisions pl,bott,1,2

Repeat

If KeyDown(200) MoveEntity Player,0,0,1
If KeyDown(205) TurnEntity Player,0,-3,0
If KeyDown(203) TurnEntity Player,0,3,0

For b.Bot=Each Bot ;Dlja vsego massiva
If EntityCollided(b\Entity,pl) ;Jesli kollizitsja sfera s playerom
If KeyHit(57) ;Jesli nazhat SPace
b\Life=b\Life-Rnd(40,60) ;Otnimajem Zhizni
EndIf
EndIf
If b\Life<=0 ;Jesli zhizni malo
FreeEntity b\Entity ;Ydalajem Sfery
Delete b ;Ydalajem Massiv
Endif
Next

UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
[/blitz]

Вродебы всё прально, писал в броузере.

vadya 05.03.2007 17:40

Re: типы в блитзе
 
а как моно сделать это без полного перебора в гл. цикле

mr.DIMAS 05.03.2007 18:06

Re: типы в блитзе
 
Вродебы с типами такого не провернешь т.е без перебора а если по другому то так: надо объявить массив с жизнями, массив с самим энтити, заполнить каждый элемент массива нужным, а затем для каждого массива проверять столкнулся ли он с игроком если столкнулся то
жизнь[номер массива]=жизнь[номер массива]-10
а затем проверка жизни : если жизнь[номер массива] меньше или равно нулю то Освободить энтити в массиве[Номер массива]
это словами:)

johnk 05.03.2007 18:14

Re: типы в блитзе
 
Цитата:

а как моно сделать это без полного перебора в гл. цикле
Вот тут посмотри:
http://www.boolean.name/showthread.php?t=23

impersonalis 05.03.2007 19:11

Re: типы в блитзе
 
Ну хоть JohnK читает FAQ!
пример юзания в игре: http://www.boolean.name/showpost.php?p=107&postcount=19
Вообще многие аспекты FPS разобраны в данной статье: http://www.boolean.name/showthread.php?t=15

ZanoZa 05.03.2007 23:29

Re: типы в блитзе
 
а ещё на blitzetc было, с использованием object, handle.
Написал бы где, но не помню.


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

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