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


  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Ох, проблема великая... (Помогите ну прошу вас!!!)
Ох, проблема великая...
RomanДата: Суббота, 18.09.2010, 16:08 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Сколько уже маюсь, никак не могу найти решение проблемы. Вообщем не могу сделать так чтобы при столкновении с конусами они (конусы) исчезали. Вот код:
Graphics3D 640,480,16

SetBuffer BackBuffer()

lit=CreateLight()
player=CreateCube()
EntityColor player,0,255,0
EntityType player, 1
target = CreateCone()
PositionEntity player, 0,0,20

For x = 1 To 100
target2 = CopyEntity(target)
PositionEntity target2, Rnd(-120, 120), Rnd(0, 0), Rnd(100, 240)
Next

EntityType target,4
Collisions 1,4,2,1

cam=CreateCamera(player)
stolb=CreateCube()
ScaleEntity stolb,1,4,1
PositionEntity stolb,-7,0,7
EntityType stolb, 2
stolb2=CreateCube()
ScaleEntity stolb2,1,4,1
PositionEntity stolb2,7,0,7
EntityType stolb2, 3
Collisions 1,2,2,1
Collisions 1,3,2,1

plan=CreatePlane()
EntityColor plan,0,0,255

PositionEntity plan,0,-1,5
PositionEntity cam,0,3,-5

Repeat
If KeyDown(200) MoveEntity player,0,0,.1
If KeyDown(208) MoveEntity player,0,0,-.1
If KeyDown(203) TurnEntity player,0,1,0
If KeyDown(205) TurnEntity player,0,-1,0

UpdateWorld
RenderWorld

Flip

Until KeyHit(1)

End

Прошу вас помогите!!!!

 
turBOДата: Суббота, 18.09.2010, 21:30 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
Посмотри как работают коллизии в примере.

If 2+2<>4 Then Restart
 
RomanДата: Воскресенье, 19.09.2010, 09:43 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Но то что я искал, не нашёл, мне надо чтобы конусы при столкновении с кубом исчезали.
 
turBOДата: Воскресенье, 19.09.2010, 20:03 | Сообщение # 4
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
Для исчезания в момент столкновения впиши сначала
Code
Const TYPE_CUBE=1,TYPE_CONUS=2
Collisions TYPE_PLAYER,TYPE_SCENERY,2,2

затем в основном блоке
Code
For с.Conus=Each Conus ;цикл "пробежится" по всем объектам типа Conus
      UpdateCollisions( с )
     Next

;И функцию, которая скроет конус, который столкнулся с кубом

Function UpdateConus( c.Conus )
If EntityCollided( c\entity, TYPE_CONUS ) then ;в твоём коде  c\entity это stolb2
       EntityAlpha с\ent,0  ;скрывает конус
endif
end function


If 2+2<>4 Then Restart
 
RomanДата: Понедельник, 20.09.2010, 11:38 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Пишет Expecting Identifier. Не мог бы скинуть готовый код?
 
SpidyДата: Вторник, 21.09.2010, 14:15 | Сообщение # 6
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
Лови! Только в моем примере от соприкосания делаются невидимыми все конусы

Code
Graphics3D 640,480,16

SetBuffer BackBuffer()

Type Cubes
  Field entity
End Type

Const TYPE_PLAYER=1,TYPE_CUBE=2
Collisions TYPE_PLAYER,TYPE_CUBE,2,1

lit=CreateLight()
Global player=CreateCube()
EntityType player,TYPE_PLAYER

EntityColor player,0,255,0
EntityType player, TYPE_PLAYER

For x = 1 To 100
  t .Cubes = New Cubes
  t\entity = CreateCone()
  PositionEntity t\entity, Rnd(-120, 120), Rnd(0, 0), Rnd(-100, 100)
  EntityType t\entity,TYPE_CUBE
Next

EntityType t\entity,2
Collisions 1,4,2,1

cam=CreateCamera(player)
stolb=CreateCube()
ScaleEntity stolb,1,4,1
PositionEntity stolb,-7,0,7
EntityType stolb, 2
stolb2=CreateCube()
ScaleEntity stolb2,1,4,1
PositionEntity stolb2,7,0,7
EntityType stolb2, 3
Collisions 1,2,2,1
Collisions 1,3,2,1

plan=CreatePlane()
EntityColor plan,0,0,255

PositionEntity plan,0,-1,5
PositionEntity cam,0,3,-5

Repeat
If KeyDown(200) MoveEntity player,0,0,.2
If KeyDown(208) MoveEntity player,0,0,-.2
If KeyDown(203) TurnEntity player,0,1,0
If KeyDown(205) TurnEntity player,0,-1,0

  For t.Cubes=Each Cubes
   UpdateColl( t )
  Next
     
UpdateWorld
RenderWorld

Flip

Until KeyHit(1)

End

Function UpdateColl( t.Cubes )
   If EntityCollided( player, TYPE_CUBE ) Then
          EntityAlpha t\entity,0
   EndIf
End Function   



Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
 
RomanДата: Вторник, 21.09.2010, 17:47 | Сообщение # 7
ламер
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Да не так не пойдёт. Кто нибудь может сделать, ну пожалуйста.
 
ParisHiltonДата: Вторник, 21.09.2010, 19:55 | Сообщение # 8
прогер
Группа: Пользователи
Сообщений: 197
Награды: 2
Репутация: 5
Статус: Offline
Roman, тебе сделали практически то, что ты хотел. Чем ты еще не доволен? Хоть бы спасибо сказал тем, кто потратил на написание кода свое время...

А лучше сам изучай и задавай вопросы если чего не понятно. Люди подскажут и помогут, если к ним обращаться с просьбой, а не перебирать. Никто за тебя игру делать не будет.


Мы ищем предмет цели для того чтобы найти результаты его следствия
 
RomanДата: Среда, 22.09.2010, 11:25 | Сообщение # 9
ламер
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Статус: Offline
Извините, просто очень надо...
Основы языка выучил, но вот надо чтобы конусы как будто кольца на уровне которые надо собирать...
Собрать 100 штук или типо того, огромное спасибо всем, но что то у меня не получается.
И да забыл сказать в самом начале темы - конусы должны не исчезать а чтобы куб их сьедал, ну типо того.


Сообщение отредактировал Roman - Среда, 22.09.2010, 11:26
 
Reks888Дата: Среда, 22.09.2010, 22:03 | Сообщение # 10
ламер
Группа: Пользователи
Сообщений: 29
Награды: 1
Репутация: 4
Статус: Offline
Quote

For t.Cubes=Each Cubes
UpdateColl( t )
Next
...
If EntityCollided( player, TYPE_CUBE ) Then
EntityAlpha t\entity,0
EndIf

кошмар
Вставлю свои пять копеек:

Тема поедания кубов полностью раскрыта в туторе Scaven'a
http://unblitz.narod.ru/tutorials/blitz3d/


Сообщение отредактировал Reks888 - Среда, 22.09.2010, 22:04
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Ох, проблема великая... (Помогите ну прошу вас!!!)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: