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


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » эх коллизии
эх коллизии
K1rusHДата: Суббота, 25.09.2010, 11:41 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Есть несколько объектов, моя моделька с ними сталкивается и срабатывает действие, всё нормально. Меняю уровень, удаляю все объекты, потом загружаю заного другие, но при столкновении с ними (столкновение происходит) уже не проиходит проверка действий.

Вот код удаления и построения заного:

If reset=1 Then
For wall.twall=Each twall
FreeEntity wall\entity : Delete wall
Next
For bon.tbon=Each tbon
FreeEntity bon\entity : Delete bon
Next
reset=0
createmap ()
createbonus ()
End If

Вот код апдейта стокновения:

For wall.twall=Each twall
updatewall (wall)
Next

Привёл эти отрыки потому что думаю что-то в них не так...


Blitz3d start error:
Blitz3d hates you!

http://proekti.moy.su/

 
Reks888Дата: Суббота, 25.09.2010, 12:02 | Сообщение # 2
ламер
Группа: Пользователи
Сообщений: 29
Награды: 1
Репутация: 4
Статус: Offline
For wall.twall=Each twall
updatewall (wall)
Next

про содержание updatewall мы должны догадаться самостоятельно?

 
K1rusHДата: Суббота, 25.09.2010, 21:06 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Quote

Function updatewall (wall.twall)
If EntityCollided(Wall\entity, TypeVzriv1) Then wall\lives=wall\lives-(100) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv2) Then wall\lives=wall\lives-(150) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv3) Then wall\lives=wall\lives-(250) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv4) Then wall\lives=wall\lives-(300) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv5) Then wall\lives=wall\lives-(300) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv6) Then wall\lives=wall\lives-(500) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeDrell) Then wall\lives=wall\lives-(20) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
End Function

Quote

Function updatebonus (bon.tbon)
bon\ot=bon\ot+5
RotateEntity bon\entity, 0, bon\ot, 0
If EntityCollided (bon\entity, TypePlayer1) Then
Select bon\types
Case 1 lives1=lives1+Rand(40, 100) : If lives1>100 Then lives1=100
Case 2 bron1=100
Case 3 usk1=1
Case 4 bessmert1=1
Case 5 kp1=kp1+1 : kp2=kp2+1 : kp3=kp3+100 : kp4=kp4+1 : kp5=kp5+1
Case 6 g1=g1+Rnd(5,50)
End Select
FreeEntity bon\entity
Delete bon
Return
EndIf
If EntityCollided(bon\entity, TypePlayer2) Then
Select bon\types
Case 1 lives2=lives2+Rand(40, 100) : If lives2>100 Then lives2=100
Case 2 bron2=100
Case 3 usk2=1
Case 4 bessmert2=1
Case 5 kkp1=kkp1+1 : kkp2=kkp2+1 : kkp3=kkp3+100 : kkp4=kkp4+1 : kkp5=kkp5+1
Case 6 g2=g2+Rnd(5,50)
End Select
FreeEntity bon\entity
Delete bon
Return
EndIf
End Function

Вот в 1 функции не выполняется проверка на wall\lives,но объекты удаляются, а во 2 функции объект крутится, но не выполняется проверка выбора Select bon\types


Blitz3d start error:
Blitz3d hates you!

http://proekti.moy.su/

Сообщение отредактировал K1rusH - Суббота, 25.09.2010, 21:14
 
Reks888Дата: Воскресенье, 26.09.2010, 10:05 | Сообщение # 4
ламер
Группа: Пользователи
Сообщений: 29
Награды: 1
Репутация: 4
Статус: Offline
Quote (K1rusH)
If EntityCollided(Wall\entity, TypeVzriv1) Then wall\lives=wall\lives-(100) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv2) Then wall\lives=wall\lives-(150) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv3) Then wall\lives=wall\lives-(250) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv4) Then wall\lives=wall\lives-(300) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv5) Then wall\lives=wall\lives-(300) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return
If EntityCollided(Wall\entity, TypeVzriv6) Then wall\lives=wall\lives-(500) : If wall\lives=<0 Then CreateExplosion(wall\entity, 4) : FreeEntity wall\entity : Delete wall :Return

Шесть разных видов взрыва, которые отличаются нанесенным уроном :o, и ШЕСТЬ отдельных типов коллизий для СОВЕРШЕННО одинаковых эффектов cry .
Из кусков ничего не понять, реквестирую полный код.
Если код является тайной за семью печатями, либо хочется чему-то научится, то рекомендую самому занятся отладкой: http://johnk.3dn.ru/publ/2-1-0-25


Сообщение отредактировал Reks888 - Воскресенье, 26.09.2010, 10:05
 
K1rusHДата: Понедельник, 04.10.2010, 20:47 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Во, спасибо за ссылку, а то не умею работать в отладчике smile

Добавлено (04.10.2010, 20:47)
---------------------------------------------
Так и не решил проблему sad С отладчиком не умею работать sad
Поставлю по другому вопрос. Есть уровень, если коллизии, есть действия при коллиззии. Меняем уровень, т.е. удаляем старые объекты, загружаем новые, есть коллизии, но нету действия при коллизиях. Как вернуть ? Может кто сталкивался с такой проблемой...


Blitz3d start error:
Blitz3d hates you!

http://proekti.moy.su/

 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » эх коллизии
  • Страница 1 из 1
  • 1
Поиск: