![]() |
Вопрос касательно создания меню
Создал меню.
Получилось так, что у меня две картинки на одинаковом по координатам и размерам месте. Это: New_game_img и Easy_game_img При проверке: If MouseHit(1) Then If ImagesCollide(Mouse_img,MouseX(), MouseY(),0, New_game_img, 0,0,0)=True Then Open_game_v=1 endif If ImagesCollide(Mouse_img,MouseX(), MouseY(),0, Easy_game_img, 0,0,0)=True Then Easy_game_v=1 endif Endif Блиц перманентно считает нажатие как на Открытие игры так и на выбор Easy Game картинки, присваивая обоим переменным значение 1. Хотя я не рисую СРАЗУ картинку Easy_game_img. только после Open_game_v=1. Может кто подскажет, каким образом можно постепенно выполнять условия? Пробовал с помощью Case, что-то на ночь не вышло. Попробую еще раз, но буду также ждать ответа от специалистов. |
Ответ: Вопрос касательно создания меню
Феерически. ImagesCollide проверяет попала ли указанная точка на указанной картинке в видимую часть картинки. Ответственность за указание правильных координат картинки, так же и собственно самой картинки лежит на плечах программиста.
Логично будет проверять картинку на нажатие лишь тогда когда текущий режим её отображения позволяет это сделать. Кроме того возникает вопрос, нафига рисовать две картинки, когда одна закрывает собой другую? Это же бесполезная работа. |
Ответ: Вопрос касательно создания меню
Дело в том, что я даже пробовал НЕ РИСОВАТЬ (DrawImage) картинку, все равно коллизит с ней, прибавляя переменную.
Зачем мне нужно, как вы сказали, накладывать одну картинку на другую? Все просто. У меня сразу видно меню и кнопку "Начало игры", после нажатия которой кнопки она исчезает и появляется кнопка выбора сложности игры, в данном случае это кнопка "Легкая игра". Координаты у обоих одинаковые, переменные показа/принятия разные, но все равно, не получается что-то. Может сможете помочь примером? Когда нажатие кнопки мыши может определить ту картинку, которая хм... как бы сверху другой, что-ли... Не могу "догнать". Все вроде как просто. Есть 2-е картинки. 2-е переменные. If Open_game_v=0 Then DrawImage New_game_img,0,0,0 Endif If MouseHit(1) Then If ImagesCollide(Mouse_img,MouseX(), MouseY(),0, New_game_img, 0,0,0)=True and Open_game_v=0 Then Open_game_v=1 Endif If ImagesCollide(Mouse_img,MouseX(), MouseY(),0, Easy_game_img, 0,0,0)=True and Open_game_v=1 and Easy_game_v=0 Then Easy_game_v=1 Endif Endif If Easy_game_v=0 and Open_game_v=1 Then DrawImage Easy_mode_img,0,0,0 Endif Но не работает. Как сделать чтобы определяло текущую картинку (ту которая видна). Отрисовываются они по очереди, а не сразу! С уважением Jester. |
Ответ: Вопрос касательно создания меню
если тебе нужно простое нажатие кнопки то можно сделать так:
курсор у тебя - рисунок, кнопка тоже пишешь условие if rectsoverlay(bla bla bla) and mousehit(1) then условие endif |
Ответ: Вопрос касательно создания меню
Проверку на пересечение лучше вынести в условие.
Код:
If Open_game_v=0 Then |
Ответ: Вопрос касательно создания меню
Топик стартер, а ты не думал что блиц проверят чисто прямоугольник столкновения,начиная с координат которыя ты задал и заканчивая рамером рисунка, в котором ищещь, внезависимости от того рисуешь ты его или нет?
|
Ответ: Вопрос касательно создания меню
Товарищ, не проще ли будет вместо двух кнопок сделать одну и просто менять текст на ней и действие.
например так Код:
Type Button а в зависимости от назначенного действия выполнять что-то нужное при нажатии. |
Ответ: Вопрос касательно создания меню
Уже все сделал сам... Спасибо за помощь!
А текст я не могу менять, т.к. там совершенно разные картинки (у меня не текстом, у меня в виде пиктограмм). |
Ответ: Вопрос касательно создания меню
Цитата:
|
Часовой пояс GMT +4, время: 22:35. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot