Скрипт меню Lua
Делаем через скрипт меню.
Следующий код Lua генерирует меню, результат вы видите на скриншоте.
-- Load Interface Images
button0=loadImage("interface/menu_button.png")
button1=loadImage("interface/menu_button_hover.png")
cursor=loadImage("interface/cursor.png")
function menu()
-- Button Font
fontSize(20)
fontStyle(1)
fontColor(1,0,0,0.5)
-- Buttons
if button("Play",5,5)>0 then
end
if button("Editor",5,screenHeight()/2)>0 then
menuEditor();
end
if button("Quit",5,screenHeight()-35-5)>0 then
menuQuit();
end
-- Mouse Cursor
color(1,1,1,1)
x=menuMouseX()
y=menuMouseY()
drawImage(cursor,x,y)
end
-- Draw a clickable button (200x35)
-- Returns >0 (mouse key ID) when clicked, 0 otherwise
function button(label,x,y)
mx=menuMouseX()
my=menuMouseY()
color(1,1,1,1)
-- Is mouse over button?
if mx>=x and my>=y and mx0 then
return mouseButton()
end
else
-- No Hover
drawImage(button0,x,y)
drawText(label,x+100-textWidth(label)/2,y+3)
end
return 0
end
Ничего грандиозного, однако это показывает как все это работает. Вы сможете написать подобный скрипт для создания интерфейса. Примечание (для тех, кто привык к CS2D/Carnage использование Lua Scripting): Цветовая кодировка 4 параметра. Последний параметр является альфа-значением. Параметры в диапазоне от 0 до 1 (не от 0 до 255). Пказанные изображения кнопок на скринщоте не являются окончательным решением, это пока макет!
Масштабирование
Кроме того, я решил добавить масштабирование объектов в редакторе. Это уже работает в полном объеме. Вы можете пропорционально либо увеличить (изменить шкалу по всем направлениям в той же величины), или вы можете изменить масштаб на одиночных углах например, чтобы получить пальму, который очень высокая.
Оригинал: http://stranded3.com/?p=125
Комментарий Devi409:
Вот и дошли до написания скриптов. Как я понимаю скоро будет реализована логика игры.
Масштабирование это супер, но главное не переборщить. Масштабировать нужно в пределах разумного. Если к примеру сделать объект очень маленький, то это будет бесполезная растрата скорости, ведь объект как содержал 20 полигонов так и содержит, только они маленькие. Увеличение тоже может дать не те результаты которых мы бы хотели добиться. При увеличении увеличивается не только объект, но и наложенные на нем текстуры. Представьте что вы загрузили объект кирпичную стену и увеличили ее в 2 раза по высоте - результат размеры нарисованных кирпичей в два раза больше чем у обычной кирпичной стены. Хотя в некоторых объектах можно указывать стиль наложения текстуры: наложение с масштабированием или расположение мозайкой.
Источник: http://stranded3.com/?p=125 |