Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 15.02.2009, 15:30   #1
ELIAS
Знающий
 
Аватар для ELIAS
 
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений
(для 6 пользователей)
Лампочка Странности Blitz3D-коллизий

Здравсвуйте.
Хочу в игре сделать плавающие платформы(плавающие в воздухе)
В связи с особенностями блитц-коллищий, достаточно легко сделать такую платформу, если она по оси игрек движется вниз. А вот если вверх, то игрок проскакивает сквозь неё.
Вот код, в нём всё понятно:

Graphics3D 640,480, 32,1
SetBuffer BackBuffer()
SeedRnd (MilliSecs()) 


Global cam=CreateCamera()
CameraRange cam,5,30000

CameraClsColor cam, 0,100,255

lit=CreateLight()


player = CreateSphere()
ScaleEntity player, 40, 40, 40
PositionEntity player,0,100,-500
RotateEntity player, 0, -45, 0
EntityColor player, 255,0,0

EntityRadius(player,40)
EntityType player,1



Global pointdot=CreateCube()


ground = CreateCube()
EntityAlpha ground, 0.5
PositionEntity ground, 0,0,-800
ScaleMesh ground, 1000,30,600
EntityColor ground, 100,255,10
EntityType ground,3

move1 = CreateCylinder()
PositionEntity move1, -500,50,0
ScaleMesh move1, 200,20,200
EntityColor move1, 0,0,255
EntityType move1,3

move2 = CreateCylinder()
PositionEntity move2, 500,50,0
ScaleMesh move2, 200,20,200
EntityColor move2, 255,255,0
EntityType move2,3

Collisions 1,3,2,3

Repeat
	
	If  MouseDown(1)=1
		TranslateEntity(player,0,2,0)
	EndIf
	
	
	TranslateEntity move1, 0, 1*0.01, 1*0.01
	TranslateEntity move2, 0, -1*0.01, 1*0.01
	
	playermove#=0
	If KeyDown(200)=1
		playermove#=0.3
	EndIf
	If KeyDown(208)=1
		playermove#=-0.3
	EndIf
	MoveEntity player, 0, 0, playermove#
	TranslateEntity player, 0, -0.5,0
	
	
	ay# = EntityYaw#(player)
	x#=MouseXSpeed()*0.25
	MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
	RotateEntity player, 0, ay# - x#, 0
	PositionEntity cam, NewXValue(EntityX(player),-aY#-180,200),EntityY(player)+80 + 40, NewZValue(EntityZ(player),-aY#-180,200)
	DotPoint cam, EntityX(player),  EntityY(player)+30,  EntityZ(player)
	
	
	UpdateWorld
	RenderWorld
	
	Text 20,20, "EntityCollided(player,3) = " + EntityCollided(player,3)
	Text 20,40, "CountCollisions(player) = " + CountCollisions(player)
	
	Flip 0
Until KeyHit(1)
End




Function NewXValue#(old#,angle#,steps#)
	Return old#+Sin(angle#)*steps#
End Function

Function NewZValue#(old#,angle#,steps#)
	Return old#+Cos(angle#)*steps#
End Function

Function DotPoint(entity, x#, y#, z#)
	PositionEntity pointdot, x#, y#, z#
	PointEntity entity, pointdot
End Function
Нажимаёте клавишу мышки, чтобы "прыгать". )))

Как видно блитц коллизии не распознают столкновения, если два движущихся объектов движутся навстречу друг другу......
Вот такая странность, которая сильно мешает мне.

Как её можно обойти??? Но только с помощью блитц-коллизий!!! Никаких физ-движков не предлагать.
Это можно сделать кстати, математически обсчитывая форму и расстояния до объекта от игрока...но всё же... Это вот легко осчитать математически форму цилиндра, а если появится куб, то уже сложнее, а если Квадрат со сквозным отверстием в форме треугольника!!!...Ну вообщем то тоже можно, но уже сложнее то насколько.
Вообщем хотелось бы найти какую-нибудь хитрость в блитц коллизиях.

Огромнейшее спасибо!
(Offline)
 
Ответить с цитированием
Старый 15.02.2009, 15:34   #2
ELIAS
Знающий
 
Аватар для ELIAS
 
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Странности Blitz3D-коллизий

И ещё! Админы, модераторы, поменяйте мне пожалуйста ник на ILIONSE !
(Offline)
 
Ответить с цитированием
Старый 15.02.2009, 15:56   #3
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Странности Blitz3D-коллизий


http://forum.boolean.name/showthread.php?t=7808
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ELIAS (15.02.2009)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
коллизии в 2.5D cheaters-hater 2D-программирование 11 07.07.2009 00:33
Коллизии Crystal 3D-программирование 58 12.10.2007 17:16
Коллизии Stalnoy_Gvozd' 3D-программирование 6 30.08.2007 15:56
Коллизии в BlitzMax. johnk FAQ и уроки 2 23.03.2007 01:21


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com