Предыдущее посещение: менее минуты назад Текущее время: 19 черв 2018, 08:36

Часовой пояс: UTC + 2 часа




 [ Повідомлень: 3 ] 
Теги:
Нет тегов
Автор Сообщение
 Заголовок сообщения: Ігровий двигун Defold Lua
Сообщение
Відсутній
Администратор
Аватара пользователя

Зарегистрирован: 13 жовт 2010, 00:09
Сообщения: 1658
Изображения: 1
Откуда: Україна
Благодарил (а): 7 раз.
Поблагодарили: 47 раз.
Запах
Колір фону РГБ

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
msg.post("@render:", "clear_color", { color = vmath.vector4(54/255, 64/255.0, 82/255.0, 1.0) } )


програти звук
,потрібнододати обєкт з компонентом звука на сцену колекції
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
msg.post("/game#b_clk", "play_sound")



Таймер
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
 t1=0
function update(self, dt)
       
         t1 = t1+dt
       
        s,ms=math.modf (t1)
        ms = math.floor (ms*10)
        m,s=math.modf (s/60)
        s=s*60

        print(m,s,ms)

end
 

_________________

програміст- характерникпошта: razorback456@gmail.com https://www.facebook.com/AndroidMobileGame/
Роблю андроїд ігри на замовлення(рекламні ігри, ігри-приколи в подарунок)ціна від 20$


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ігровий двигун Defold Lua
Сообщение
Відсутній
Администратор
Аватара пользователя

Зарегистрирован: 13 жовт 2010, 00:09
Сообщения: 1658
Изображения: 1
Откуда: Україна
Благодарил (а): 7 раз.
Поблагодарили: 47 раз.
Запах
Модуль обробки події кліку по спрайту

Модуль goput.lua

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--- Модуль, який спрощує обробку вхідних даних об'єктами гри за допомогою спрайтів


local M = {}

local sprites = {}

local function key_from_url(url)
        return tostring(url.socket) .. hash_to_hex(url.path) .. hash_to_hex(url.fragment)
end


--sprite_url урл спрайта
--sprite_offset зміщення спрайта від нуля вектор
--on_input_callback функція яка повертається при події кліку на спрайт
--goput.add("go1#sprite", nil, handle_click)
function M.add(sprite_url, sprite_offset, on_input_callback)
        assert(sprite_url)
        assert(on_input_callback)
        sprite_offset = sprite_offset or vmath.vector3()
        sprite_url = type(sprite_url) == "string" and msg.url(sprite_url) or sprite_url
        sprites[key_from_url(sprite_url)] = {
                sprite_url = sprite_url,
                go_url = msg.url(sprite_url.socket, sprite_url.path, nil),
                offset = sprite_offset,
                callback = on_input_callback, size = go.get(sprite_url, "size") }
end

--- видалити слухача спрайту

--goput.remove("go1#sprite")
function M.remove(sprite_url)
        assert(sprite_url)
        sprite_url = type(sprite_url) == "string" and msg.url(sprite_url) or sprite_url
        sprites[key_from_url(sprite_url)] = nil
end

--- Forward input from a script that has acquire input focus
-- @param action_id Action id as received from on_input
-- @param action Action table as received from on_input
-- @return Will return value returned by the callback function for
-- tge game object that received input or false if no game object
-- received input
function M.on_input(action_id, action)
        for _,sprite_data in pairs(sprites) do
                local go_scale = go.get_scale_vector(sprite_data.go_url)
                local sprite_scale = go.get(sprite_data.sprite_url, "scale")
                local size = sprite_data.size
                local pos = go.get_position(sprite_data.go_url)
                pos.x = pos.x + sprite_data.offset.x * go_scale.x
                pos.y = pos.y + sprite_data.offset.y * go_scale.y
               
                local scaled_size = vmath.vector3(size.x * go_scale.x * sprite_scale.x, size.y * go_scale.y * sprite_scale.y, 0)
               
                if action.x >= pos.x - scaled_size.x / 2 and action.x <= pos.x + scaled_size.x / 2 and action.y >= pos.y - scaled_size.y / 2 and action.y <= pos.y + scaled_size.y / 2 then
                        return sprite_data.callback(sprite_data.go_url, action_id, action)
                end
        end
        return false
end

return M


Приклад використання

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local goput = require "click_game_object.goput"  -- папка,назва_файлу

local function random_position()
        local w = sys.get_config("display.width")
        local h = sys.get_config("display.height")
        return vmath.vector3(math.random(1, w), math.random(1, h), 0)
end

local function handle_click(url, action_id, action)
        if action.released then
                go.animate(url, "position", go.PLAYBACK_ONCE_FORWARD, random_position(), go.EASING_INOUTCIRC, 0.5)
        end
end

function init(self)
        msg.post(".", "acquire_input_focus")
        msg.post("@render:", "clear_color", { color = vmath.vector4(95 /256, 129 / 256, 161 / 256, 1 ) })
        go.set("go1#sprite", "scale", vmath.vector3(1.5, 1.5, 1))
       
        goput.add("go1#sprite", nil, handle_click)
        goput.add("go2#sprite", nil, handle_click)
        goput.add("go3#sprite", nil, handle_click)
        goput.add("go4#sprite", nil, handle_click)
        goput.add("go5#sprite", vmath.vector3(100, 50, 0), handle_click)
end

function final(self)
        msg.post(".", "release_input_focus")
        goput.remove("go1#sprite")
        goput.remove("go2#sprite")
        goput.remove("go3#sprite")
        goput.remove("go4#sprite")
        goput.remove("go5#sprite")
end

function on_input(self, action_id, action)
        return goput.on_input(action_id, action)
end
 

_________________

програміст- характерникпошта: razorback456@gmail.com https://www.facebook.com/AndroidMobileGame/
Роблю андроїд ігри на замовлення(рекламні ігри, ігри-приколи в подарунок)ціна від 20$


Вернуться к началу
  
 
 Заголовок сообщения: Re: Ігровий двигун Defold Lua
Сообщение
Відсутній
Администратор
Аватара пользователя

Зарегистрирован: 13 жовт 2010, 00:09
Сообщения: 1658
Изображения: 1
Откуда: Україна
Благодарил (а): 7 раз.
Поблагодарили: 47 раз.
Запах
КООРДИНАТИ КЛІКУ
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--підключити бібліотеку rendercam
local rendercam = require "rendercam.rendercam"

function on_input(self, action_id, action)
       
         
        if action_id == hash("click")  and action.pressed then
         --перевести координати екрану в координати гри
        vec3 =rendercam.screen_to_world_2d(action.screen_x, action.screen_y)
       
          -- вивести координати кліку в консоль  
        print(vec3.x,vec3.y)
               
end

_________________

програміст- характерникпошта: razorback456@gmail.com https://www.facebook.com/AndroidMobileGame/
Роблю андроїд ігри на замовлення(рекламні ігри, ігри-приколи в подарунок)ціна від 20$


Вернуться к началу
  
 
 [ Повідомлень: 3 ] 
   Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
В цій темі нема непрочитаних коментарів. Разработка и монетизация игр под планшеты на LUA Движке

в форуме Програмування ігор і їх монетизація

simart

7

2043

30 лист 2017, 02:02

simart Перейти к последнему сообщению

В цій темі нема непрочитаних коментарів. corona SDK LUA - інструкція з розробки ігор

[ На страницу: 1, 2 ]

в форуме Програмування ігор і їх монетизація

simart

17

1865

09 лют 2017, 23:51

admin Перейти к последнему сообщению

В цій темі нема непрочитаних коментарів. платформа для розробки ігор: Defold (lua) android/ios/html5

в форуме Програмування ігор і їх монетизація

simart

3

553

07 груд 2016, 20:11

simart Перейти к последнему сообщению


Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: aretmigo, demon, Elin, megatester, Photoshop Garden, Ray12, stanislas88, Web Designer Wall, Ульяна, Ванильная и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: