[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » ХЕЛП (РЕАЛЕзациЯ лАйФа)
ХЕЛП
zoro193Дата: Среда, 22.10.2008, 18:46 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
ХЕЛП ЛЮДИ ДоБРЫЕ! sad Делаю робота в лесу убивающего кубики сделал лайф но он не отнимается

ССылка на модели и текстуры
http://blitzetc.blitzmax.ru/images/3/30/3DBasicsMedia.zip
ВОТ КОД
Graphics3D 800,600
Type monsters
Field obj,live
End Type
Type bullets
Field obj,lifetime
End Type
Collisions 1,2,2,2
Collisions 3,2,2,2
Collisions 3,3,2,2
Collisions 1,3,3,1
Collisions 3,1,2,1
Collisions 4,3,2,1

live=10

cube=CreateCube()

rx# = 10
rz# = 0
ang = 90

PositionEntity cube,0,0,10
RotateEntity cube, 0, 180, 0

EntityColor cube,0,0,255
EntityType cube,1
cam=CreateCamera(cube)
CameraRange cam,0.01,1000
PositionEntity cam,0,10,-20
RotateEntity cam,25,0,0

pushka=CreateCube(cube)
ScaleEntity pushka,0.1,0.1,1
PositionEntity pushka,0,1,1
EntityColor pushka,255,0,0

s=LoadSprite("1.bmp",2)
HideEntity s

pol=CreateTerrain(256)
PositionEntity pol,-128,-2,-128
tex=LoadTexture("1.bmp")
EntityTexture pol,tex
EntityType pol,2

For i=1 To 10
monster.monsters=New monsters
monster\obj=CreateCube()
ScaleEntity monster\obj,2,2,2
EntityColor monster\obj,Rnd(0,255),Rnd(0,255),Rnd(0,255)
EntityType monster\obj,3
PositionEntity monster\obj,Rnd(-100,100),4,Rnd(-100,100)
Next
Repeat

While Not KeyHit(1)

For monster.monsters = Each monsters
If monster<>Null
If Not EntityCollided(monster\obj,2)
MoveEntity monster\obj,0,-1,0
EndIf
PointEntity monster\obj,cube
MoveEntity monster\obj,0,0,0.05
If EntityCollided(monster\obj,1)
d=d+1
If d=50
live=live-1
d=0
EndIf
EndIf
If EntityCollided(monster\obj,4)
monster\live=monster\live+1
EndIf
If monster\live=2
FreeEntity monster\obj
Delete monster
EndIf
EndIf
Next

If KeyDown(200)
MoveEntity cube,0,0,0.1
EndIf
If KeyDown(203)
TurnEntity cube,0,4,0
EndIf
If KeyDown(205)
TurnEntity cube,0,-4,0
EndIf
If Not EntityCollided(cube,2)
MoveEntity cube,0,-0.1,0
EndIf
If MouseHit(1)
bullet.bullets = New bullets
bullet\obj = CopyEntity(s,pushka)
EntityType bullet\obj,4
End If
For bullet.bullets = Each bullets
If bullet<>Null
EntityParent bullet\obj,groundfloor
MoveEntity bullet\obj,0,0,10
bullet\lifetime = bullet\lifetime+1

If EntityCollided(bullet\obj,3)
FreeEntity bullet\obj
Delete bullet
Else
If bullet\lifetime>100
FreeEntity bullet\obj
Delete bullet
EndIf
EndIf
End If
Next
If live=0 Then End
UpdateWorld
RenderWorld
Text 4,4,live
Flip
Cls
Wend
Forever

 
blitz3dДата: Четверг, 23.10.2008, 11:02 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
Ты не совсем понятно изложил суть проблемы. Не знаю понял ли я тебя...

Наверное ты имеешь в виду, что жизни не всегда отнимаются, а только когда противник своим центром находится в игроке. В данном случае нужно задать Entityradius для противников. Тогда колизии будут обрабатываться точнее!


перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » ХЕЛП (РЕАЛЕзациЯ лАйФа)
  • Страница 1 из 1
  • 1
Поиск: