Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2008, 10:09   #1
Titan123
Форумчанин
 
Аватар для Titan123
 
Регистрация: 27.06.2008
Сообщений: 113
Радость OnMouseDown в игре.

мне нужно, чтобы, если мышь была "поднята" вверх, то компонент image1 тоже поднимался вверх, вниз-вниз.
насколько я знаю, за это отвечает событие OnMouseDown. но я не знаю, как им воспользоваться. помогите реализовать
Titan123 вне форума Ответить с цитированием
Старый 25.07.2008, 10:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если мышь была "поднята" вверх
Если мышь поднять вверх то курсор останется на месте ибо в воздухе мышь теряется и смущается ))))

А если по теме то термин "поднята вверх" неплохо было бы прояснить.
Отжата кнопка или курсор вверх пополз?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.07.2008, 10:35   #3
Titan123
Форумчанин
 
Аватар для Titan123
 
Регистрация: 27.06.2008
Сообщений: 113
По умолчанию

да, если курсор вверх поднялся
извиняюсь
Titan123 вне форума Ответить с цитированием
Старый 25.07.2008, 11:58   #4
Iceman
Форумчанин
 
Регистрация: 08.07.2007
Сообщений: 154
По умолчанию

Тада не он моусе довн. можно сделать так:
ontimer:
var x,y,xn,yn:integer; p:Tpoint;
begin
xn:=mouse.cursorppos.x;
yn:=mouse.cursorppos.y;
if x<> xn then p.x:=p.x+(xn-x);
if y <>yn then p.y:=p.y+(yn-y);
image1.left:=p.x;
image1.top:=p.y;
x:=mouse.cursorppos.x;
y:=mouse.cursorppos.y;
end;

как перевести в язык програмирования думаю поймеш.

Последний раз редактировалось Iceman; 25.07.2008 в 12:03.
Iceman вне форума Ответить с цитированием
Старый 25.07.2008, 12:00   #5
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

относительно чего поднялся вверх?
а вообще логика такая
Код:
if Y > Y_точки_относительно_которой_работаем then
Image1.Top := Image.Top + h;// h- какая-то велеичина
else
Image1.Top := Image.Top - h;// h- какая-то велеичина
Hollander вне форума Ответить с цитированием
Старый 26.07.2008, 03:40   #6
GenAcid
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 28
По умолчанию

Сделай таймер, и в onTimer добавь:
Код:
Image1.Top := Mouse.CursorPos.Y;
GenAcid вне форума Ответить с цитированием
Старый 27.07.2008, 04:23   #7
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

А ещё есть системное сообщение WM_MOUSEMOVE его система посылает процедуре окна, обладающего фокусом ввода при перемещении мыши (имеется ввиду по столу).

Примерно так:

Код:
WndProc	proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD,\
                 		wparam:DWORD, lparam:DWORD

	cmp	[wmsg], WM_MOUSEMOVE
	je	wmmousemove
	jmp	finish

wmmousemove:	
	mov	eax,lparam
	and	eax,0FFFFh
	mov	[x],eax
	mov	eax,lparam
	shr	eax,16
	mov	[y],eax
	jmp	finish
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 29.07.2008, 12:09   #8
Titan123
Форумчанин
 
Аватар для Titan123
 
Регистрация: 27.06.2008
Сообщений: 113
По умолчанию

Цитата:
Сообщение от GenAcid Посмотреть сообщение
Сделай таймер, и в onTimer добавь:
Код:
Image1.Top := Mouse.CursorPos.Y;
спс. помогло.
только там один недочет: курсор при запуске программы выше картинки, так неудобно управлять. как сделать так, чтобы картинка и курсор первоначально находились на одном уровне?
Titan123 вне форума Ответить с цитированием
Старый 29.07.2008, 12:13   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну отними еще высоту курсора.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.07.2008, 12:36   #10
Titan123
Форумчанин
 
Аватар для Titan123
 
Регистрация: 27.06.2008
Сообщений: 113
По умолчанию

а как?
вот так не получается:
Mouse.CursorPos.Y-10;
Titan123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Препятствия в игре. Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 07.06.2008 14:14
Хитрости в игре Gothic Altera Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 21.05.2008 00:21
Вопрос по игре!!! Ыть Паскаль, Turbo Pascal, PascalABC.NET 2 28.03.2008 09:02
onMouseDown в MainMenu chingiz Помощь студентам 2 26.07.2007 23:08
Помогите сделать сохранения в игре!!! Teen4jump Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 20.06.2007 17:29