switch show_message_ext("Вопрос?","Да!","Нет","") { case 0: Действие_если_нажата_клавиша_Esc; break; case 1: room_goto(buy); break; //пользователь нажал "Да!" case 2: room_restart(); break; //пользователь нажал "Нет" }
В строку case 0: Действие_если_нажата_клавиша_Esc; break; тоже советую что-то написать, иначе, если будет нажата клавиша Esc окно закроется и ничего не произойдет. Можешь написать туда то же что и при нажатии "да" или при нажатии "нет"
На сколько я знаю, таким способом больше трех нельзя. Если ты имеешь ввиду под словом "красивый" красивый внешний вид, можно для диалогового окна и кнопок задать любую текстуру с помощью функций message_background(back)
Устанавливает фон для всплывающего сообщения, вызванного любой из вышеуказанных функций. back должен быть один из фонов, имеющихся в игре. К сожалению, значения прозрачности не учитываются. Однако, если пиксель слева внизу будет иметь прозрачность 0, то все пиксели с тем же цветом будут считаться прозрачными.
message_alpha(alpha)
Устанавливает прозрачность для всплывающего сообщения любой из вышеуказанных функций. alpha должна лежать между 0 (полностью прозрачный) и 1 (не прозрачный) (только для Windows 2000 или старше).
message_button(spr)
Устанавливает спрайт, используемый для кнопок в всплывающем сообщении. spr должен быть спрайт, состоящий из трех изображений, первое указывает кнопку, когда она не нажата, и мышь в стороне, второе указывает кнопку, когда мышь над ней, но не нажата, и третье нажатая кнопка. К сожалению, прозрачность не принимается во внимание. Однако, если пиксель слева внизу будет иметь прозрачность 0, то все пиксели с тем же цветом будут считаться прозрачными.
Если нужно больше трех кнопок, можно сделать для каждой кнопки отдельный объект и еще один объект для самого окна. Вот пример анимироаных кнопок. Тут только 2 кнопки и нет самого окна сообщение (сделано прямо в окне программы)к, но сделаны они отдельными объектами, та что можно легко по аналогии добавить сколько хочешь.
6. Я делаю систему покупок. Есть событие, если нажать Левой Кнопкой Мыши по объекту, то
Code
global.mech+=1
Но когда я нажимаю, то мечи прибавляются бесконечно. Вопрос: как сделать, чтоб при одном щелчке мыши на объекте к переменной прибавлялась только единица? Типа, один раз нажал, держи сколько угодно, отнимется все равно один? Посоветуйте, где скачать VB6 :C
(_Meloman_), мне надо, чтобы при нажатии на объект выполнялось действие. Твое же выполняет при любом нажатии. Моя говорить: нэээ... Посоветуйте, где скачать VB6 :C
А вообще лучше сделать как (_Meloman_) сказал - Left Released. Объясню в чем тут плюс. Можно, если использовать Left Released, сделать анимацию нажатия на предмет. Хотя бы 3 кадра (просто предмет, предмет при наведении указателя мыши, предмет при нажатии). Если использовать Left Released, ты сможешь увидеть анимацию "при нажатии клавиши мыши", если сделаешь Left Pressed - анимацию ты не увидишь (а если сделать чтобы анимация была привязана к Left Released, а действие к Left Pressed анимацию ты увидишь, но будет выглядеть тупо). По такому принципу сделаны, например, кнопки в Windows.
Пробовал и обычное, и глобальное. Ладно, Left Released так Left Released.
Добавлено (24.12.2010, 08:05) --------------------------------------------- 7. Я наконец-то начал создавать счетчики для персонажа. И сразу возникает вопрос - как привязать вывод переменной к виду?
draw_set_font(font) Устанавливает шрифт, который будет использоваться при рисовании текста. Используйте -1, чтобы установить встроенный по умолчанию шрифт Arial 12.
draw_text_color(x,y,string,c1,c2,c3,c4,alpha) Рисует строку в позиции (x,y) подобно вышеупомянутой функции. Четыре цвета определяют цвета левого верхнего, верхнего-правого, нижнего-правого, и нижнего-левого угла текста. alpha прозрачность, используйте (0-1).
make_color_rgb(red,green,blue) Возвращает цвет с указанными красными, зелёными и синими компонентами, где red, green и blue должны иметь значение от 0 до 255.
или
Quote
make_color_hsv(hue,saturation,value) Возвращает цвет с указанными hue, saturation и value компонентами (каждый между 0 и 255).
Добавлено (27.12.2010, 11:44) --------------------------------------------- 8. Начинаю делать врагов. Вопрос таков - как сделать проверку движения? То есть, если враг движется влево, то спрайт enemy_l, eсли вверх enemy_u, и т.д.
Зависит от того как ты сделал движение (заменой скорости на противоположную по знаку, изменением direction, передвижение с помощью изменения координаты x). Новый пример инвентаря! /20.06.2012/