Проверка столкновений
| |
Virusss | Дата: Пятница, 26.03.2010, 20:22 | Сообщение # 1 |
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
| Блин, сломал мозги и не могу вспомнить как проверить на столкновение например тип 1 с типом 2! Помогите плииз..........!!! Добавлено (26.03.2010, 20:22) --------------------------------------------- Global map=LoadAnimMesh("D:\RapidShare\map1.b3d") Global sh=FindChild(map,"Sphere01") ... Global ground=FindChild(map,"Box01") ... EntityType sh,1 EntityType ground,3 .... Collisions 1,3,2,3 вроде есть коллизия, но шарик проесто и непринужденно проходит сквозь второй обьект...я опять что то забыл?
|
|
| |
Spidy | Дата: Пятница, 26.03.2010, 20:24 | Сообщение # 2 |
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
| Quote If CountCollisions( b\sprite ) If EntityCollided( b\sprite,TYPE_TERRAIN ) EmitSound boom,b\sprite ex#=EntityX(b\sprite) ey#=EntityY(b\sprite) ez#=EntityZ(b\sprite) TFormPoint( ex,ey,ez,0,land ) hi#=TerrainHeight( land,TFormedX(),TFormedZ() ) If hi>0 hi=hi-.02:If hi<0 Then hi=0 ModifyTerrain land,TFormedX(),TFormedZ(),hi,True EndIf CreateSpark( b ) FreeEntity b\sprite Delete b Return EndIf If EntityCollided( b\sprite,TYPE_SCENERY ) For k=1 To CountCollisions( b\sprite ) If GetEntityType( CollisionEntity( b\sprite,k ) )=TYPE_SCENERY cx#=CollisionX( b\sprite,k ) cy#=CollisionY( b\sprite,k ) cz#=CollisionZ( b\sprite,k ) nx#=CollisionNX( b\sprite,k ) ny#=CollisionNY( b\sprite,k ) nz#=CollisionNZ( b\sprite,k ) th.Hole=New Hole th\alpha=1 th\sprite=CopyEntity( hole_sprite ) PositionEntity th\sprite,cx,cy,cz AlignToVector th\sprite,-nx,-ny,-nz,3 MoveEntity th\sprite,0,0,-.1 Exit EndIf Next EmitSound boom,b\sprite CreateSpark( b ) FreeEntity b\sprite Delete b Return EndIf EndIf b\time_out=b\time_out-1 If b\time_out=0 FreeEntity b\sprite Delete b Return EndIf
Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
|
|
| |
Virusss | Дата: Суббота, 27.03.2010, 06:44 | Сообщение # 3 |
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
| ясно, а как с кодом быть? Добавлено (27.03.2010, 06:44) ---------------------------------------------
Quote (Virusss) вроде есть коллизия, но шарик проесто и непринужденно проходит сквозь второй обьект...я опять что то забыл? а что в коде неправильно?Вроду ведь все есть...
|
|
| |
deejex | Дата: Суббота, 27.03.2010, 09:31 | Сообщение # 4 |
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
| Virusss, UpdateWorld() слышал о таком?
|
|
| |
Virusss | Дата: Суббота, 27.03.2010, 18:10 | Сообщение # 5 |
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
| придставь себе - слышал и даже написал! UpdateWorld() RenderWorld() Flip Вот. правильный порядок? просто еси что то я могу код выложить он не большой.
|
|
| |
deejex | Дата: Суббота, 27.03.2010, 20:56 | Сообщение # 6 |
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
| попробуй так: Global map=LoadAnimMesh("D:\RapidShare\map1.b3d") Global sh=FindChild(map,"Sphere01") EntityParent sh,0 ... Global ground=FindChild(map,"Box01") EntityParent ground,0 ... EntityType sh,1 EntityType ground,3 .... Collisions 1,3,2,3
|
|
| |
|