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

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

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

Ответ
 
Опции темы
Старый 31.08.2012, 20:58   #1501
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Подскажите как вот так сделать.
Нажмите на изображение для увеличения
Название: problem.png
Просмотров: 880
Размер:	3.3 Кб
ID:	17542
А именно есть платформы и кубики. Если кубик на платформе, то она перекрашивается в красный, а если нет, то в зеленый. Делаю без коллизий, проверяю на дистанцию. Проблема в том что у меня вечно тупняки с перебором объектов. На данный момент все это дело работает только для одного кубика.
---
Сделал через лайн пик, но тоже самое выходит
For d.TDepot = Each TDepot
	m\p = LinePick (m\x,m\y,m\z,0,-0.5,0)
		If m\p = d\ent Then
			d\is123 = 1
		Else 
			d\is123 = 0 // тут вся борода. надо как то по другому, но не знаю как. :)
		EndIf 
Next

Последний раз редактировалось Nex, 31.08.2012 в 21:58.
(Offline)
 
Ответить с цитированием
Старый 31.08.2012, 23:06   #1502
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: Вопрос-Ответ (для новичков)

функция пересечения квадрата и прямоугольника тебе в помощь

Function cross_square_and_rect(x1#,y1#,x2#,y2#,x#,y#,side#) 

    
w#=x1-x2 
    
h#=y1-y2 
    
centerx#=x1-w/2 
    
centery#=y1-h/2 

    
If Abs(centerx x) <= (Abs(w) + side) / And Abs(centery y) <= (Abs(h) + side) / Return True 
     
     
End 
Function 
(Offline)
 
Ответить с цитированием
Старый 31.08.2012, 23:19   #1503
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Я просил помочь с перебором объектов, а не с пересечением.
(Offline)
 
Ответить с цитированием
Старый 31.08.2012, 23:59   #1504
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от Nex Посмотреть сообщение
Я просил помочь с перебором объектов, а не с пересечением.
Я думаю что в поле куда записан хэндл квадратика во всех элементах коллекции прописано одно и тоже значение. Потому и работает только для одного.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (01.09.2012)
Старый 01.09.2012, 00:54   #1505
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от pepel Посмотреть сообщение
функция пересечения квадрата и прямоугольника тебе в помощь

Function cross_square_and_rect(x1#,y1#,x2#,y2#,x#,y#,side#) 

    
w#=x1-x2 
    
h#=y1-y2 
    
centerx#=x1-w/2 
    
centery#=y1-h/2 

    
If Abs(centerx x) <= (Abs(w) + side) / And Abs(centery y) <= (Abs(h) + side) / Return True 
     
     
End 
Function 
Так будет куда шустрее если хочешь проверить коллизии:

Function CollisionDetect(x1,y1,w1,h1,x2,y2,w2,h2)
		If x1 > (x2+w2) Or (x1+w1) < x2 Then Return False
		If y1 > (y2+h2) Or (y1+h1) < y2 Then Return False
	Return True 
End Function
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Dzirt за это полезное сообщение:
Dream (01.09.2012), pepel (01.09.2012)
Старый 08.09.2012, 17:11   #1506
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Пытаюсь по-быстрому напилить easing.
Набросал простую функцию:
Function curve_f#(t#,typ) ;Где t от 0 до 1
  Select typ
	Case 0 ;Linear
		Return t
	Case 1 ;In
		Return 1-Cos(t*90)
	Case 2 ;Out
		Return Sin(t*90)
	Case 3 ;Cubic
		Return curve_f(t*2,1)*0.5
  End Select
End Function
Но мне нужна более сложная вещь.
Я решил делать графики из четырёх точек, как-то так:
Type curve_q_t ;Quad-pointed curve
	Field p.curve_q_t_p[4]
End Type

Type curve_q_t_p ;Point
	Field x#,y#
	Field typ ;см. curve_f
End Type

Function curve_q#(q.curve_q_t,t#)
	For i = 1 To 3
		If q\p[i]\x>=t Then	
			bc# = curve_f(  (t-q\p[i-1]\x)/(q\p[i]\x-q\p[i-1]\x) , q\p[i-1]\typ) ;Извините за говнокод
			Return q\p[i-1]\y+(q\p[i]\y-q\p[i-1]\y)*bc
			
		End If
	Next
End Function


Function curve_q_Create.curve_q_t(p1y#,p1t,p2x#,p2y#,p2t,p3x#,p3y#,p3t,p4y#,p4t )
	q.curve_q_t = New curve_q_t
		q\p[0] = New curve_q_t_p
			q\p[0]\y = p1y
			q\p[0]\typ = p1t
		q\p[1] = New curve_q_t_p
			q\p[1]\x = p2x
			q\p[1]\y = p2y
			q\p[1]\typ = p2t
		q\p[2] = New curve_q_t_p
			q\p[2]\x = p3x
			q\p[2]\y = p3y
			q\p[2]\typ = p3t
		q\p[3] = New curve_q_t_p
			q\p[3]\x = 1
			q\p[3]\y = p4y
			q\p[3]\typ = p4t
	Return q
End Function
Но оно даёт неточный результат.
Нет ли готовых решений?
(Offline)
 
Ответить с цитированием
Старый 08.09.2012, 23:19   #1507
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Вопрос-Ответ (для новичков)

пытался сделать поворот оьъекта мышью как в шутерах. Не получилось. Поварачивал, не поварачивал, объект двигается потом не правильно
(Offline)
 
Ответить с цитированием
Старый 09.09.2012, 19:11   #1508
Кирпи4
Социал-сычевист
 
Аватар для Кирпи4
 
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений
(для 1,359 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от Okay Посмотреть сообщение
пытался сделать поворот оьъекта мышью как в шутерах. Не получилось. Поварачивал, не поварачивал, объект двигается потом не правильно
Не может быть такого, значит ты что-то не то вертишь. Скинь код. (только КОД ПОВОРОТА, а не over 9000 строк всей программы)
__________________


(Offline)
 
Ответить с цитированием
Старый 08.10.2012, 22:37   #1509
PREy
AnyKey`щик
 
Аватар для PREy
 
Регистрация: 29.07.2012
Сообщений: 12
Написано 5 полезных сообщений
(для 27 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.
(Offline)
 
Ответить с цитированием
Старый 08.10.2012, 23:16   #1510
Wegox
Бывалый
 
Аватар для Wegox
 
Регистрация: 17.12.2011
Сообщений: 862
Написано 443 полезных сообщений
(для 1,133 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от PREy Посмотреть сообщение
Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.
Так
Graphics3D 640,480 
SetBuffer BackBuffer() 

camera=CreateCamera()  
PositionEntity camera,0,20,-100

light=CreateLight() 
RotateEntity light,90,0,0 

t=LoadMesh("tic.3ds")  

While Not KeyDown(1) 

RenderWorld  

Flip 
Wend  
End
(Offline)
 
Ответить с цитированием
Старый 09.10.2012, 00:06   #1511
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от PREy Посмотреть сообщение
Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.
FLIP скорее всего забыл
(Offline)
 
Ответить с цитированием
Старый 09.10.2012, 02:24   #1512
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от PREy Посмотреть сообщение
Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.
Возможно загружаешь модель в цикле. Надо загружать до Repeat или до While.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
PREy (09.10.2012)
Старый 09.10.2012, 09:21   #1513
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Вопрос-Ответ (для новичков)

я 3дс юзаю поэтому не знаю но возможно у тебя в модельке оч много объектов
(Offline)
 
Ответить с цитированием
Старый 09.10.2012, 15:01   #1514
PREy
AnyKey`щик
 
Аватар для PREy
 
Регистрация: 29.07.2012
Сообщений: 12
Написано 5 полезных сообщений
(для 27 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Nex прав. Я оформил загрузку модели как функцию и добавил еще несколько команд, а сама функция находилась в главном цикле. Спасибо за помощь
(Offline)
 
Ответить с цитированием
Старый 23.10.2013, 10:27   #1515
No09
AnyKey`щик
 
Регистрация: 07.10.2013
Сообщений: 9
Написано одно полезное сообщение
Вопрос Ответ: Вопрос-Ответ (для новичков)

У меня проблема с аниммироваными объектами. Вот например: загузил через LoadAnimMesh модель дверей. Нормально сделал анимацию. Потом загрузил управление от первого лица и вот тут я и встретил проблему. Если приблизиться камерой ко двери и отвернуть её где-то на 45 градусов, то дверь просто исчезает, а если вернуть камеру в исходное положение, то дверь появляется. Я заметил такой прикол, что если в 3д редакторе сдвинуть меш немного дальше от центра координат и экспортировать в игру, то этот баг исчезает, но появился еще один такой самый: если открыть дверь и посмотреть на нее с другой стороны, то она опять начинает исчезать и появляться Как можно убрать этот баг?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста дайте ответ на несколько вопросов Kuzma 3D-программирование 8 06.10.2009 19:38
Предложение к теме "вопрос-ответ" jimon Наш форум 1 27.02.2009 19:26
Мой ответ Жеке! alcosholik Болтовня 5 19.11.2005 16:41


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


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