Пятница, 29 Марта 2024, 11:12

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Реализация всплывающих сообщений и диалогов.
Реализация всплывающих сообщений и диалогов.
SholarДата: Понедельник, 12 Июля 2010, 12:58 | Сообщение # 1
Draw With Me
Сейчас нет на сайте
При наведении мышки на иконку(предмета или ещё чего) необходимо отображение информации о объекте, но вот проблемка... информации о объектах (а в некоторых имеет картинка) не всегда красиво отображается... и приходится делать каждое окошко под каждый объект... интересно можно ли этот процесс автоматизировать, ограничившись, скриптом в который нужно будет вводит только инфу и иконку о объекте. Я прикрепил схематичное сообщение.. думаю всё понятно, но поясню всё же... зелёное это текст, с ним в основном и проблема, как его сделать в определённые рамки.. второе это размер сообщения (2 красные линии х и y) проблема в том что бы оно зависело от количества символов и строилась по X и Y... строиться сообщение должно из координаты мышки, тем самым, нужно строить выше этой координаты, на высоту равную количеству строк... вообщем дурдом @_@ надеюсь на Вашу помощь.
Прикрепления: 8266465.jpg (52.0 Kb)


https://vk.com/g_sholar
ApatiДата: Понедельник, 12 Июля 2010, 13:45 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Для рисования текста в прямоугольнике используй
draw_text_ext(x,y,string,sep,w) sep - указывает расстояние разделения между строками текста в "многостроковом" тексте. Используйте -1, чтобы получить расстояние по умолчанию. Используйте w, чтобы указать ширину текста в пикселях. Строки, которые более длинные, разделяются шириной в пробелах или знаках. Используйте -1, чтобы не разбивать строки.

Для того, чтобы определить высоту текста, используй
string_height_ext(string,sep,w) Высота строки в текущем шрифте при рисовании, используя функцию draw_text_ext().

Пример (я не проверял, может не работать):

Code
    text="Текст с параметрами";
        draw_set_color(c_white);
        draw_roundrect(     
                        mouse_x-250,
                        mouse_y-string_height_ext(text,-1,250),
                        m   ouse_x,
                        mouse_y,
                        0);
        draw_set_color(c_black);
        draw_text_ext(
                        mouse_x-250,
                        mouse_y-string_height_ext(text,-1,250),
                        t ext,
                        -1,
                        250);

Ну и потом легко нарисовать иконку и прочее.

Сообщение отредактировал Apati - Понедельник, 12 Июля 2010, 14:03
SholarДата: Понедельник, 12 Июля 2010, 14:00 | Сообщение # 3
Draw With Me
Сейчас нет на сайте
Apati Спасибо (+), немного доделал для длины... но всё же тема актуальна. Нужно реализовать перехода др строку, если длина строки превышает опр число.

https://vk.com/g_sholar
ApatiДата: Понедельник, 12 Июля 2010, 14:01 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Quote (DrawPlayer)
Нужно реализовать перехода др строку, если длина строки превышает опр число.

так для этого и надо использовать draw_text_ext
SholarДата: Понедельник, 12 Июля 2010, 14:14 | Сообщение # 5
Draw With Me
Сейчас нет на сайте
Quote
так для этого и надо использовать draw_text_ext

Всё понял. Спасибо ещё раз.

Добавлено (12.07.2010, 14:14)
---------------------------------------------
ЗЫ. В твоём коде, снизу рисуется белый прямоугольник как фон, а можно использовать картинку, т.е. что бы она строилась и использовалась за мест прямоугольника... (имея скажем изображения 4 углов, 4 стороны и сам фон)
(именно строилась, а не растягивалась)


https://vk.com/g_sholar

Сообщение отредактировал DrawPlayer - Понедельник, 12 Июля 2010, 14:15
SaracenДата: Понедельник, 12 Июля 2010, 14:48 | Сообщение # 6
участник
Сейчас нет на сайте
Quote (DrawPlayer)
использовать картинку

draw_sprite тебе в помощь. рисуй поверх draw_roundrect.
SholarДата: Вторник, 13 Июля 2010, 17:48 | Сообщение # 7
Draw With Me
Сейчас нет на сайте
Как сделать что бы элемент, держался постоянно в окне (в рамках игрового вида) даже если мышку увести за пределы окна.

Добавлено (13.07.2010, 11:18)
---------------------------------------------
Вот прикрепил файл. В нем не происходит подсчёт строк и их длины(это происходит в draw_sprite_ext) следовательно изображение строится не правильно... мб где я ступил...
+ как сделать то что писал выше

Quote
Как сделать что бы элемент, держался постоянно в окне (в рамках игрового вида) даже если мышку увести за пределы окна.

файл не прикрепился Т_Т
вот код... для теста вставьте в событие Draw

Code
text="one twoo treee chetree";  
    
          draw_text_ext(  
                      mouse_x-string_width_ext(text,-1,250),  
                      mouse_y-string_height_ext(text,-1,250),  
                      text,  
                      -1,  
                      50);
                       
      draw_set_color(c_black);  
      draw_roundrect(   
                      mouse_x-string_width_ext(text,-1,250)-15,  
                      mouse_y-string_height_ext(text,-1,250)-15,  
                      mouse_x+15,  
                      mouse_y+15,  
                      0);  
                       
      str_x=string_width_ext(text,-1,250)+30
      str_y=string_height_ext(text,-1,250)+30
      draw_sprite_stretched_ext(spr_5,0,mouse_x-string_width_ext(text,-1,250)-15,mouse_y-string_height_ext(text,-1,250)-15,str_x,str_y,-1,1)
      draw_sprite(spr_3,1,mouse_x+1+15,mouse_y+1+15)
      draw_sprite(spr_4,1,mouse_x-string_width_ext(text,-1,250)-15,mouse_y+1+15)
      draw_sprite(spr_1,1,mouse_x-string_width_ext(text,-1,250)-15,mouse_y-string_height_ext(text,-1,250)-15)
      draw_sprite(spr_2,1,mouse_x+1+15,mouse_y-string_height_ext(text,-1,250)-15)
       
       
      draw_set_color(c_white);
      draw_text_ext(  
                      mouse_x-string_width_ext(text,-1,250),  
                      mouse_y-string_height_ext(text,-1,250),  
                      text,  
                      -1,  
                      50);
                       
                       
      draw_text(100,100,str_x)
      draw_text(100,150,str_y)

где spr_1,spr_2,spr_3,spr_4 - углы, а spr_5 фон.

Добавлено (13.07.2010, 17:48)
---------------------------------------------
ап...


https://vk.com/g_sholar

Сообщение отредактировал DrawPlayer - Вторник, 13 Июля 2010, 11:22
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Реализация всплывающих сообщений и диалогов.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг