forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Управление мышью в 3D (http://forum.boolean.name/showthread.php?t=7901)

Мазахист 28.02.2009 22:36

Управление мышью в 3D
 
Пытаюсь сделать 3D космическую аркаду, но застопорился при создании управления кораблём. Хочу сделать чтобы объект перемещался с помощью мыши - сначала вычисляю координаты мыши, а затем перемещаю по тем координатам объект. Но! При малейшем передвижении мыши, объект прыгает далеко за пределы экрана:dontknow:. Уже несколько часов бьюсь над этой траблой. Помогите плз:)

NitE 28.02.2009 23:22

Ответ: Управление мышью в 3D
 
оо, хочешь расскажу тайну мироздания ?
1/2=0.5

ABTOMAT 01.03.2009 00:09

Ответ: Управление мышью в 3D
 
Во-первых, флуд не оправдан
Во-вторых 1/2 = 0
Не верите?
Впишите в Блиц
Код:

Print 1/2
WaitKey()

И запустите.

Афтору: Телепатировать не удалось.
Вообще Пиши в Дебаг Лог координаты мыши и смотри в чём дело.

tormoz 01.03.2009 00:12

Ответ: Управление мышью в 3D
 
Цитата:

Сообщение от NitE (Сообщение 99171)
оо, хочешь расскажу тайну мироздания ?
1/2=0.5

Это уже не мазохизм :-D

impersonalis 01.03.2009 00:15

Ответ: Управление мышью в 3D
 
Цитата:

Во-вторых 1/2 = 0
поддерживаю.

юзай movemouse в центр экрана

ABTOMAT 01.03.2009 00:21

Ответ: Управление мышью в 3D
 
Я так понял у него не мауслук.

Мазахист 01.03.2009 10:07

Ответ: Управление мышью в 3D
 
Я в общем разобрался в чём дело, но как это исправить не знаю:( Если при стандартных размерах создаваемых объектов, переместить объект по иксу к примеру на 6, то объект выходит за пределы экрана, а у мыши-то координаты по иксу получаются и 100, и 200:) Есть у кого какие идеи?

SBJoker 01.03.2009 12:42

Ответ: Управление мышью в 3D
 
тебе надо мышью пикать в экран и по полученым 3д координатам позиционировать..

Для пика в камеру необходим объект-фон... Хорошо подходит скайбокс для этой цели.

NitE 01.03.2009 13:30

Ответ: Управление мышью в 3D
 
:-D
a#=1
b#=2

Print a/b
WaitKey()

а вот так 0.5 !

аффтар - смотри mousexspeed() и mouseyspeed()

SBJoker, зачем пикать если ему надо чтоб в риалтайме кораблик двигался ?

аффтар, код на родину !

ABTOMAT 01.03.2009 13:35

Ответ: Управление мышью в 3D
 
Мазахист, ну так дели координаты мышки на z#, где z# - это значение меньше единицы. Чтобы масштаб сопоставить. Если я верно понял.
NitE, да что у тебя за кодомания? Неужели ты ждёшь чего-то полезного в километре кода?

NitE 01.03.2009 13:45

Ответ: Управление мышью в 3D
 
ABTOMAT, я просто помояь хочу, самому мне этот код в задницу ненужен...

Мазахист 03.03.2009 20:55

Ответ: Управление мышью в 3D
 
Получилось, но немного не так, как хотелось бы - объект как-то двигается рывками:(
Код:

Graphics3D 800,600,32,2
AmbientLight(255,255,255);
camera = CreateCamera();
light = CreateLight();
cube = CreateCube();
PositionEntity(camera,0,0,-15);
MoveMouse(400,300);
While Not KeyDown( 1 )
xs=MouseX()/30;
ys=MouseY()/30;
PositionEntity(cube,xs-13,-ys+10,0);
RenderWorld
Flip
Wend
End


NitE 03.03.2009 21:13

Ответ: Управление мышью в 3D
 
Код:

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
HidePointer
light=CreateLight()
cam=CreateCamera()
cube=CreateCube()
MoveEntity cam,0,0,-20
Repeat
x#=MouseXSpeed()*0.05
y#=-MouseYSpeed()*0.05
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
TranslateEntity cube,x,y,0
UpdateWorld()
RenderWorld()
Flip
Until KeyHit(1)
End


Мазахист 03.03.2009 21:21

Ответ: Управление мышью в 3D
 
NitE, спасибо большое!
З.Ы Можно и в FAQ добавить, много где встречал похожий вопрос:)

Taugeshtu 03.03.2009 22:03

Ответ: Управление мышью в 3D
 
добавить FAQ в надо строку с соедржанием следующим:
Товарищ, помни! Коли взялся чегой-то клепать, основы познать не забудь!
//Это относится к неумению использовать типы данных (непонимаю различий Int и Float) и неосознаванию вовсе принципов программирования (как из 100 сделать 1? Открыть вселенскую тайну?)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot