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

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

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

Ответ
 
Опции темы
Старый 09.07.2009, 19:27   #1
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Проблемы с CollisionN(X,Y,Z) и Collision(X,Y,Z)

Возникла проблема с этими командами.
Здесь код, с помощью которого я делаю некое подобие декалей (взял из одного примера):

 nx#=0
			ny#=0
			nz#=0
			num#=CountCollisions(bul\model)
			For i=1 To num
				nx=nx+CollisionNX(bul\model,i)
				ny=ny+CollisionNY(bul\model,i)
				nz=nz+CollisionNZ(bul\model,i)
				x#=x#+CollisionX(bul\model,i)
				y#=y#+CollisionY(bul\model,i)
				z#=z#+CollisionZ(bul\model,i)
			
			nx=nx/num
			ny=ny/num
			nz=nz/num
			x=x/num
			y=y/num
			z=z/num


Здесь вычисляется угол столкновения между двух объектов. Когда пуля bul\model сталкивается с уровнем, на месте столкновения появляется спрайт:

dec.decal = New decal
			dec\sprite = CopyEntity (scorchsprite)
			dec\life# = 0.8
			RotateSprite dec\sprite,Rand(360)
			temp#=0.3+Rnd(0.6)
			ScaleSprite dec\sprite,temp#,temp#
			PositionEntity dec\sprite,x,y,z
			AlignToVector dec\sprite,-nx,-ny,-nz,0
			MoveEntity dec\sprite,0,0,-0.2
			DebugLog "Decal created at " +x+""+y+""+z
При одиночном столкновении никаких проблем нет. Но когда пули создаются не по одиночке, а по несколько (дробь из ружья), то при одновременном столкновении спрайты создаются на расстоянии. То есть, если одновременно столкнулись три пули, то первый спрайт будет на месте столкновения, второй через некоторое расстояние, также как и третий.
Есть ли какя-либо возможность отсортировать столкновения посредствами блитцевский команд коллизий?
(Offline)
 
Ответить с цитированием
Старый 04.01.2010, 15:44   #2
shyrikkk
Нуждающийся
 
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений
(для 2 пользователей)
Плохо Ответ: Проблемы с CollisionN(X,Y,Z) и Collision(X,Y,Z)

Я тебе кодом конечно не смогу помоч , но я бы сделал по другому если уж без выходное положение !!!
Нарисуй спрайт (дробь) который дожен вылетать из оружия , и спрайт который отпечатается после выстрела встену (тоже как будто из дробовика ) !!! НО здесь есть маленькое НО !!!
Если стрельнуть на угол какойнибудь стены спрайт так на углу и отпечатаеться (спрайт дроби ),

а внормальных играх часть дроби сталкиваеться встенке , а часть летит дальше потому что в стенку не попала другая часть дроби (стрельба же идёт в угол) !!!
вспомни игрушку CS1.6
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
collision Tormaz 3D-программирование 14 10.11.2009 21:45
2d collision Spy4433 2D-программирование 3 10.10.2009 17:44
Collision bot BaD RaNDoM 3D-программирование 2 07.12.2007 13:36
Collision box H@NON 3D-программирование 10 22.06.2007 01:12
Collision? Lexa 3D-программирование 4 22.10.2005 00:41


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


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