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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 05.06.2012, 14:07   #1
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Поворот шлейфа

Привет, Булка! Недавно в библиотеках я выложил эффект мешевого шлейфа. Этот эффект был нужен для создания рисованной линии на экране( как например во fruit ninja). Но тут есть проблема. Не получается развернуть по движению мыши сам шлейф. Точнее получается но частично.
Исходник шлейфа по ссылке на его тему. Вот код примера:

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
Include "MeshTrail.bb"

CreateLight(1)
Global Cam=CreateCamera()
PositionEntity Cam,0,40,-100
tex=LoadTexture("Trail2.png",16+32)
Trl=Trail_Create(0,1,0,0,0,0)
For i=1 To 10
	Trail_AddSegment(Trl,i,5,0,i,0,0)
Next

Cone=CreateCone(4)
p1=CreateSphere(4,Cone)
PositionEntity p1,2,0,0
p2=CreateSphere(4,Cone)
PositionEntity p2,-2,0,0
;HideEntity Cone

EntityTexture Trail_GetTrail(Trl),Tex
EntityFX Trail_GetTrail(Trl),1+16
EntityBlend Trail_GetTrail(Trl),3

Repeat

WireFrame KeyDown(17)

If MouseDown(1)
	PositionEntity Cone,(MouseX()/4)-50,(-MouseY()/4+5)+100,0
	Trail_MoveSegments(Trl,EntityX#(p1,1),EntityY#(p1,1),EntityZ#(p1,1),EntityX#(p2,1),EntityY#(p2,1),EntityZ#(p2,1))
	;RotateEntity Cone,0,0,ATan2#(MouseYSpeed(),MouseXSpeed())
	AlignToVector Cone,MouseXSpeed(),MouseYSpeed(),0,3
EndIf

If MouseDown(2)
	PositionEntity Cone,(MouseX()/4)-50,(-MouseY()/4+5)+100,0
	Trail_AddSegment(Trl,EntityX#(p1,1),EntityY#(p1,1),EntityZ#(p1,1),EntityX#(p2,1),EntityY#(p2,1),EntityZ#(p2,1))
	;RotateEntity Cone,0,0,ATan2# (MouseYSpeed(),MouseXSpeed())
EndIf

UpdateWorld
RenderWorld
Text 20,20,"LMB - move trail"
Text 20,30,"RMB - create segments"
Text 20,40,"W - toggle wireframe"

Flip
Until KeyHit(1)
End
Не получается повернуть его при движении по диагонали. В связи с чем возникает два вопроса:
1) Почему?
2) Как от этого избавиться?
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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