![]() |
Перемещение объектов
Помогите пожалуйста. Необходимо создать несколько объектов (к примеру 5), чтобы при клики на одном из них он выделялся (менял цвет, типа активный, либо рамка появлялась). Затем, при клике в любой части экрана, данный объект начинал туда перемещаться.
Я новичок в этом деле... написал, что-то типа такого Код:
Graphics3D 840,580 Помогите пожалуйста реализовать, лучше не используя тот бред, который я написал. Кстати, пришлось использовать правую кнопку мыши (MouseHit(2)) левая почему то не срабатывала вообще. Спасибо! |
Ответ: Перемещение объектов
вместо mousehit() лучше использовать Getmouse()
Эм, если будет время отпишусь) |
Ответ: Перемещение объектов
Ну прям сразу - MouseX/Y/Z узнаёт координаты указателя мыши на экране, а не в 3d-пространстве. Поэтому и сфера у тебя перемещается в непонятно какие координаты. Что бы узнать место куда ты ткнул мышью в 3d-пространстве нужно создать какую нибудь поверхность с EntityPickMode равное 2 (у тебя был plane, раскоментируй например его), если не нравится скрыть её с помощью EntityAlpha, почитать справку и использовать следующие команды при нажатии на кнопку мыши: CameraPick(cam, MouseX(), MouseY()) PositionEntity(cur, PickedX(), PickedY(), PickedZ()). Это если мне не изменяет память. Ну, думаю, пищу для размышлений дал. апд А вторая сфера не выделяется потому что у тебя неверно организовано условие на MouseHit(1). Код:
If MouseHit(1) = True |
Ответ: Перемещение объектов
Большое спасибо! Буду думать. О результатах отпишусь!
|
Ответ: Перемещение объектов
Цитата:
Я обычно делаю так Код:
Global mx,my,mz,msx,msy,msz,MouseHit1,mouseHit2 |
Ответ: Перемещение объектов
Спасибо. Учту.
У меня новый набор вопросов =( Что-то тяжело идет (5 лет не программировал)... В общем решил, пока, сделать меню. Сделал что-то убогое, отдаленно напоминающее. Но вот не знаю как фоновую картинку вставить. Точнее вставляю, но она становится на передний план затуляя надписи (старт, выход). Может ли данная картинка быть .gif (анимацией). Помогите, пожалуйста решить данную проблему. Вот код моего меню: Graphics3D 640, 480, 16, 1 SetBuffer BackBuffer() Global fontB=LoadFont("Verdana",82) Global FontM=LoadFont("Verdana",32) Global GameScr=0 Global aa=LoadImage("1.jpg") ;================================== ;main cycle Repeat Select GameScr Case 0 UpdateStartScreen() DrawImage aa, 0,0 End Select Flip Until KeyHit(1) ;================================= ;Functions ;================================= Function UpdateStartScreen() Cls tShift=0 If RectsOverlap(MouseX(),MouseY(),1,1,320-50,240-12,100,32) tShift=1 If RectsOverlap(MouseX(),MouseY(),1,1,320-50,280-12,100,32) tShift=2 SetFont FontB ;setup font Color 255,100,40 Text 320,150,"Project",True,True SetFont FontM If tShift=1 Color 0,255,0 Else Color 255,0,0 Text 320,240, "Start model",True,True If tShift=2 Color 0,255,0 Else Color 255,0,0 Text 320,280, "Quit",True,True Color 250,200,0 cursor=LoadImage("cursor.bmp") DrawImage cursor, MouseX(),MouseY() ;Text MouseX(),MouseY(),"*",True,True If MouseHit(1) Select tShift Case 1 End Case 2 End End Select EndIf End Function 2. Хочу добавить опции, чтобы можно было выбрать разрешение. Пока не знаю как. Или чтоб само подстраивалось по пользовательское... 3. Думал сделать не просто надписи (старт, выход), а параллелепипеды, натянуть на них текстуры, но можно ли как-то на них потом писать, т.е. поверх текстуры? 4. Не пойму как можно вставить видео при запуске игры. Типа заставки. 5. Это правда не относиться к меню, но можно ли забрать из файла матрицу, а потом вернуть преобразованную в другой файл (или хотя бы в этот же)? 6. Читал, что на цетере были статьи по созданию инвентаря, но сайт сейчас не работает, поделитесь, пожалуйста, опытом. Правда мне не инвентарь нужен, а панель состояния. Типа какое в руках у персонажа1 оружие, а какое у персонажа2 и т.д. Люди добрые помогите, пожалуйста. |
Ответ: Перемещение объектов
1. Код:
Global aa=LoadImage("1.jpg") Код:
Repeat 2. Что бы программа на блице запускалась с разрешением пользовательского экрана надо заместо разрешения экрана указать нули. В твоём случае Graphics3d 0, 0, 16, 1. Для начала этого хватит. Но вполне реально реализовать и смену разрешения, глубины и оконности, там впринципе ничего трудного и нету. 3. Реально, можно рисовать и писать в текстуры, и потом текстурировать. Смотри блицевский пример по команде CreateTexture. Но лучше использовать готовые текстуры с текстом, хотя это лично моё мнение. 4. В последних версиях блица появились команды OpenMovie, CloseMovie, DrawMovie и какие то ещё связанные с этим. Они же, кстати, открывают и рисуют *.gif картинки. В блице есть примеры по их использованию. 5.6. не компетентен в данных вопросах, хотя забать из файла и записать в файл можно что угодно, вопрос будет ли соблюдаться формат первоначального файла (если нужно конечно). |
Ответ: Перемещение объектов
Цитата:
Можно подробнее про создание глубины и оконности? Может есть утилиты для создания меню (какой-нить гуи менеджер или хз что) или примеры с коментами? Если есть какая-нибудь инфа поделитесь, пожалуйста. Т.к. помимо фона, так же съезжает и текст (start, quit и т.д., которые создаются так - Text 320,280, "Quit",True,True). Может кто сталкивался с возможностью создания трехмерных букв, возможно даже отбрасывающих тени... Большое спасибо за помощь! |
Ответ: Перемещение объектов
Цитата:
Код:
width% = GraphicsWidth () |
Часовой пояс GMT +4, время: 15:32. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot