Предыдущее посещение: менее минуты назад Текущее время: 21 серп 2017, 14:17

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




 [ Повідомлень: 70 ] 
Теги:
luaGideros
На страницу 1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

Зарегистрирован: 13 жовт 2010, 00:09
Сообщения: 1645
Изображения: 1
Откуда: Україна
Благодарил (а): 7 раз.
Поблагодарили: 47 раз.
Запах
Топик о аналогах Gideros Studio: http://simart.info/viewtopic.php?f=70&t=7877

Порядок установки:
Скрытый текст. Необходимо зарегистрироваться.


Скрытый текст. Необходимо зарегистрироваться.

Gideros Mobile tutorial – Displaying Images


Содержание:
 ! 


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

Зарегистрирован: 13 жовт 2010, 00:09
Сообщения: 1645
Изображения: 1
Откуда: Україна
Благодарил (а): 7 раз.
Поблагодарили: 47 раз.
Запах
цвет фона
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
application:setBackgroundColor(0xcd5700)


-- те саме тільки в ргб
function rgbToColor(r, g, b)
 
   local sum = r * 65536 + g * 256 + b
 
   return sum
 
end
 
application:setBackgroundColor(rgbToColor(123, 321, 124))

 



операции с изображением :
1

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--указать путь к изображению
local kartinka = Bitmap.new(Texture.new("image.png"))
--указать координаты куда  вывести картинку
kartinka:setX(200)
kartinka:setY(200)
--отобразить картинку на екране
stage:addChild(kartinka)


Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--установить новые координаты картинки
kartinka : SETPOSITION ( 210 , 220 )

--масштаб  картинки SetScale (Scale)  1 = 100%    ставим  Scale = 50%  
kartinka : SetScale(0.5)

--отразить картинку по  горизонтали или вертикали ставим "-100%" так:
kartinka : setScaleX (- 1 )
kartinka : setScaleY (- 1 )


--повернуть на угол  45 градусов:
kartinka : SetRotation ( 45 )

--Прозрачность картинки  1 = 100% невидима  0= 100% видима  0,5 =  50% прозрачность:
kartinka : SetAlpha ( 0.5 )


--Сделать картинку невидимой не удаляя  с игрового уровня:
kartinka : SetVisible ( false )

--Когда вы закончите с вашим изображением, не забудьте удалить его со сцены, чтобы он не занимали память и процессор:
stage : RemoveChild ( kartinka )

--Удалить изображение из памяти полностью:
kartinka =  nil

 


Спрайты

Спрайты могут объединять в себе несколько изображений , и изменения позиции спрайта , прозрачности и т.д. - будет применяться на все картинки которые входят в этот спрайт.

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--делаем спрайт
sprite1 = Sprite.new()
sprite1:setPosition(100,100)
--делаем картинку
local kartinka1 = Bitmap.new(Texture.new("image1.png"))
kartinka1:setPosition(10,10)
--добавим в спрайт картинку 1
sprite1:addChild(kartinka1)
local kartinka2 = Bitmap.new(Texture.new("image2.png"))
kartinka2:setPosition(100,100)
--добавим в спрайт картинку 2
sprite1:addChild(kartinka2)

--добавляем спрайт в игровой уровень и  увидим его на екране.
stage:addChild(sprite1)


Теперь со всеми изображениями в спрайте мы работаем как с 1 изображением:
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--установим прозрачность 50% для спрайта
sprite1:setAlpha(0.5)

-- повернем на 45 градусов
sprite1:setRotation(45)
 

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

Зарегистрирован: 13 жовт 2010, 00:09
Сообщения: 1645
Изображения: 1
Откуда: Україна
Благодарил (а): 7 раз.
Поблагодарили: 47 раз.
Запах
покадровая Анимация
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
-- создаем масив изображений для анимации
local kadr = {}
kadr[1] = Bitmap.new(Texture.new("image1.png"))
kadr[2] = Bitmap.new(Texture.new("image2.png"))

--создадим анимацию из 2 кадров  длительностью  в 20фреймов
local anim1 = MovieClip.new{
-- с 1 по 10 фрейм показываем кадр 1
{1, 10, kadr[1]},
---- с 10 по 20 фрейм показываем кадр 2
{10, 20, kadr[2]},
}
-- укажем расположение анимации и  добавим в игровой уровень
anim1:setPosition(150,150)
stage:addChild(anim1)

--чтобы зациклить анимацию по кругу  создаем событие при достижении  20 фрейма переходим  в 1й фрейм
anim1:setGotoAction(20, 1)

-- Запускаем проигрывание анимации
anim1:gotoAndPlay(1)



Для экономии кадры можно использовать несколько раз - например нам нужно проиграть анимацию вперед и обратно - и вместо 5ти кадров анимации мы используем кадры повторно и используем только 3 картинки вместо 5ти.
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local kadr = {}
kadr[1] = Bitmap.new(Texture.new("image1.png"))
kadr[2] = Bitmap.new(Texture.new("image2.png"))
kadr[3] = Bitmap.new(Texture.new("image3.png"))

-- создаем анимацию 5 кадров длительностью 30 фреймов (1 кадр = 5 фреймов)
local anim1 = MovieClip.new{
{1, 5, kadr[1]},
{5, 10, kadr[2]},
{10, 15, kadr[3]},
--тут используем старые кадры ток в обратном порядке
{15, 20, kadr[2]},
{25, 30, kadr[1]},
}
-- устанавливаем позицию на екране и добавляем анимацию в уровень
anim1:setPosition(250,250)
stage:addChild(anim1)
-- запускаем анимацию / поскоку мы не создали событие   anim1:setGotoAction(20, 1)  то анимация проиграется ток 1 раз  (зациклить надо с 20 фрейма  а не 30 чтобы  кадр1 не проигрывался  дважды).
anim1:gotoAndPlay(1)


как сделать Несколько вариантов анимаций
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local eliAnim = MovieClip.new{
{1, 7, self.anim[1]},
{8, 15, self.anim[2]},
{16, 18, self.anim[1]},
{19, 21, self.anim[2]},
}
eliAnim:setGotoAction(15, 1)    --> frames 1-15: slow animation  зацикливаем  1й и 15 кадры
eliAnim:setGotoAction(21, 16)   --> frames 16-21: fast animation
 
eliAnim:gotoAndPlay(1) --> проиграть 1анимацию
eliAnim:gotoAndPlay(16) --> проиграть 2 анимацию


Анимация движения
Свойства которые доступны для анимации:
x,y,rotation,scale,scaleX,scaleY,alpha
Типы анимации движения:
Скрытый текст:
"inBack"
* "outBack"
* "inOutBack"
* "inBounce"
* "outBounce"
* "inOutBounce"
* "inCircular"
* "outCircular"
* "inOutCircular"
* "inCubic"
* "outCubic"
* "inOutCubic"
* "inElastic"
* "outElastic"
* "inOutElastic"
* "inExponential"
* "outExponential"
* "inOutExponential"
* "linear"
* "inQuadratic"
* "outQuadratic"
* "inOutQuadratic"
* "inQuartic"
* "outQuartic"
* "inOutQuartic"
* "inQuintic"
* "outQuintic"
* "inOutQuintic"
* "inSine"
* "outSine"
* "inOutSine"


пример анимация по X движением "linear" (линейно)
-- construct a 100 frame animation where x coordinate of sprite tweens from 0 to 200 linearly
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local mc = MovieClip.new{
        {1, 100, sprite, {x = {0, 200, "linear"}}}  -- проиграть с 1 до 100кадра с движением по оси  Х от 0 до 200
       --mc:setGotoAction(100, 1)  - зациклить анимацию  после 100 фрейма переходить на 1й
}


еще пример:
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local mc = MovieClip.new{
        {1, 100, sprite1, {x = {0, 200, "linear"}}},
        {50, 150, sprite1, {y = {0, 100, "linear"}}, {alpha = {0, 1, "easeOut"}}},
        {100, 200, sprite2, {x = {0, 200, "linear"}}},
}

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

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

-- Простая проверка коллизий Устаревший метод
Скрытый текст:
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
function collisionTest(spriteA, spriteB)
    --проверяем накладывается ли  один обьект на второй
   local collided = false
   x1,y1,w1,h1,x2,y2,w2,h2 = spriteA.x, spriteA.y, spriteA.width, spriteA.height, spriteB.x, spriteB.y, spriteB.width, spriteB.height
   if (y2 >= y1 and y1 + h1 >= y2) or (y2 + h2 >= y1 and y1 + h1 >= y2 + h2) or (y1 >= y2 and y2 + h2 >= y1) or (y1 + h1 >= y2 and y2 + h2 >= y1 + h1) then
      if x2 >= x1 and x1 + w1 >= x2 then
         collided = true
      end
      if x2 + w2 >= x1 and x1 + w1 >= x2 + w2 then
         collided = true
      end
      if x1 >= x2 and x2 + w2 >= x1 then
         collided = true
      end
      if x1 + w1 >= x2 and x2 + w2 >= x1 + w1 then
         collided = true
      end
   end
   return collided
end



--теперь осталось вызвать нашу функцию проверки коллизий например проверим коллизию обьекта spriteA с любым из массива обьектов spriteB
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
for i=1,max_spriteB do
   if collisionTest (spriteA, spriteB[i]) == true then
      --здесь выполняем действия при коллизии
   end
end


Функция проверки коллизии
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
function Sprite:collision(sprite2)
        -- self bottom < other sprite top
        if self:getY() + self:getHeight()/3 < sprite2:getY() then
                return false
        end
        -- self top > other sprite bottom
        if self:getY() > sprite2:getY() + sprite2:getHeight() then
                return false
        end
        -- self left > other sprite right
        if self:getX() > sprite2:getX() + sprite2:getWidth() then
                return false
        end
        -- self right < other sprite left
        if self:getX() + self:getWidth()/3 < sprite2:getX() then
                return false
        end
                return true
end

Візіваем функцию так
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
if self:collision(спрайтБ) then
--действия при коллизии
end

этот метод проверяет столкновения прямоугольников, елиже нужно проверять более сложные фигуры, то проще опользоваться физическим АПИ Box2D b2.PolygonShape - http://docs.giderosmobile.com/reference/physics/b2PolygonShape/new#b2.PolygonShape.new

http://www.box2d.org/manual.html#_Toc258082970

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

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

В вашей игре у вас будет много объектов и экземпляров объектов, и вы захотите быстро проверить все коллизии или на какой обьект сработал тач

Проще всего всем объектам присвоить уникальный ID
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local sprite1 = Sprite.new()
local sprite2 = Sprite.new()
local kartinka1 = Bitmap.new(Texture.new("image1.png"))
local kartinka2 = Bitmap.new(Texture.new("image2.png"))
sprite1.id = 1
sprite2.id = 2
sprite1:addChild(kartinka1)
sprite2:addChild(kartinka2)

local function imagetouch(sprite, event)
if sprite:hitTestPoint(event.touch.x, event.touch.y) then
--выводим сообщение в консоль
print("коснулись обьекта: ID=" .. sprite.id)
end
end
sprite1:setPosition(50,50)
sprite2:setPosition(200,200)
--добавляем слушателя на тач касание по спрайтам
sprite1:addEventListener(Event.TOUCHES_END, imagetouch, sprite1)
sprite2:addEventListener(Event.TOUCHES_END, imagetouch, sprite2)
--добавляем спрайты в гейм уровень
stage:addChild(sprite1)
stage:addChild(sprite2)
 

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

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

Данный пример загружает картинку из сети и выводит ее на екран.
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--
--выводим текст
local info = TextField.new(nil, "Загрузука...")
info:setPosition(10, 10)
stage:addChild(info)

--загружаем урл
local loader = UrlLoader.new("http://www.simart.info/image.png")

--добавляем слушатели
loader:addEventListener(Event.COMPLETE, onComplete)
loader:addEventListener(Event.ERROR, onError)
loader:addEventListener(Event.PROGRESS, onProgress)


-функция при завершении скачки
local function onComplete(event)
        info:setText("готово")

--сохраняем скачанное изображение
        local out = io.open("|D|image.png", "wb")
    out:write(event.data)
    out:close()
--выводим изображение на екран
    local b = Bitmap.new(Texture.new("|D|image.png"))
        b:setAnchorPoint(0.5, 0.5)
        b:setPosition(160, 240)
    stage:addChild(b)
end

local function onError()
        info:setText("ошибка")
end

--функция выводящая сколько байт скачано
local function onProgress(event)
    info:setText("загружено: " .. event.bytesLoaded .. " из " .. event.bytesTotal)
end


также как изображение можно скачать страницу html или xml
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local loader = UrlLoader.new("http://xml.weather.yahoo.com/forecastrss/USCA0987.xml")

и распарсить ее извлеч нужные данные регулярными выражениями или парсером DOM(в LUA - паттерны вместо регулярок )

вот упрощенная библиотека "DOM" для LUA - LOM :lol:
Скрытый текст. Необходимо зарегистрироваться.

подробно о паттернах
Скрытый текст. Необходимо зарегистрироваться.

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

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

 ! 
Если вы привыкли к другим языкам, которые имеют регулярные выражения, помните, что паттерны Луа не то же самое что регулярки: они более ограниченны, и имеетю другой синтаксис.


-- string.find('banana', 'an') Ищет первое вхождение паттерна 'an' в строке 'banana'. Если паттерн найден, то функция возвращает позиции его начала и конца, в противном случае возвращается nil

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x,y = string.find('banana', 'an')
print (x,y)   -- выведет  2 3

--еще пример
print (string.find ("the quick brown fox", "quick")) --получим  5 9

x,y = string.find('banana', 'lua') -- 'Lua "не будет найдена
print (x,y)   -- выведет  nil


Но буквально совпадающий текст не не очень полезен, гораздо интересней использовать в шаблоне патерна спецсимволы "." - например значит искать любой символ
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x,y = string.find("abcdefg", 'b..')   -- получим 2 4


Теперь мы можем использовать это, чтобы получить нужный текст, но есть способ лучше: String.match функция. Она возвращает соответствующий текст, или nil , если паттерн не найден:

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("abcdefg", 'b..')
print (x) --выведет bcd


Есть разные спецсимволы паттернов %d -любая цифра %u - заглавная буква
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("foo 123 bar", '%d%d%d')  
--получим 123
x = string.match("text with an Uppercase letter", '%u')  
--получим U


Смотрим полный список значений спецсимволов:
Скрытый текст:
еслинужно чтоб луа понимал спецсимвол как обычный - можно его экранировать спецсимволом '\', поскольку в самих паттернах для экранирования используется символ '%'.

Следующие специальные шаблоны определяют классы символов:
'%z' нулевой символ
'%s' пробельный символ
'%l' буква в нижнем регистре
'%u' буква в верхнем регистре
'%a' буква
'%d' цифра
'%x' шестнадцатеричная цифра
'%w' буква или цифра
'%p' символ пунктуации
'%с' управляющий символ

'%' экранирование или придание специального смысла
'.' любой символ
'^' начало строки
'$' конец строки
'(…)' группа
'%d' (d — цифра) группа с номером d
'*' 0 или больше символов
'-' 0 или больше символов (кратчайшее соответствие)
'+' 1 или больше символов
'?' 0 или 1 символ
'[…]' множество символов
'[^…]' отрицание множества символов
%bxy участок строки между сбалансированными символами



Вы можете создавать множества символов, обернув группу символов в квадратных скобках. Результат будет соответствовать одному из групы символов в скобках. Если первым символом внутри скобок является ^ , то результат вернет все кроме символов в скомках

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("abcd", '[cb][cb]')  -- найти с или b   2раза
--bc
x = string.match("abcd", '[^ad]') -- кроме a или d
--b
x = string.match("123", '[0-5]') -- найти любую цифру от 0 до 5
--123



Повторение

Для того чтобы мы могли искать не только фиксированной длины строки есть 4 чимвола повторения указывающие сколько раз повторить предыдущий символ:
'*' 0 или больше символов
'-' 0 или больше символов (кратчайшее соответствие)
'+' 1 или больше символов
'?' 0 или 1 символ
?
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("examples", 'examples?')
--examples
x = string.match("example", 'examples?')
--example
x = string.match("example", 'examples')
--nil
 


+
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("this is some text with a number 12345 in it", '%d')
--1
x = string.match("this is some text with a number 12345 in it", '%d+')
--12345


сравним * с +
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("one |two| three", '|.*|')
--|two|
x = string.match("one || three", '|.*|')
--||
x = string.match("one || three", '|.+|')
--nil


если * жадный и берет максимальную совпавшую строку то "-" берет минимум
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("one |two| three |four| five", '|.*|')
--|two| three |four|
x = string.match("one |two| three |four| five", '|.-|')
--|two|
x = string.match("one |two| three |four| five", '|[^|]*|') -- еслибы небыло "-" то пришлось бы так парсить
--|two|


Еще примеры
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("abc", 'a.*')  -- ищем А + любой символ + повтор любой символ
--abc
x = string.match("abc", 'a.-') --  после "-" нет  ничего поэтому  такое применение не сработает
--a
x = string.match("abc", 'a.-$') --  $ -указывает конец строки
abc
x = string.match("abc", '^.-b') --  ^ ищет начало строки
--ab


А если нам нужно найти символ который является спецсимволом - мы просто екранируем его символом % пример:

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("%*^", '%%%*%^')   --  тут мы ищем %*^  но перед каждым символом ставим %  чтоб луа воспринимал  их как обычные символы
--%*^



Захват

Если нужно найти определенную строку но нужна только ее часть для дальнейшей работы часть патерна мы заключаем в () и результат вернется только выражение в () хотя искать будет всю строку

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
x = string.match("foo: 123 bar: 456", '(%a+):%s*(%d+)%s+(%a+):%s*(%d+)') -- %a: ,буква %s: пробел
--foo123bar456


>> С этими знаниями можно создать браузерного бота или просто парсить нужную информацию с интернет и выводить в своем приложении (погода, курсы валют и т.п.)

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

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


Во всех играх и приложениях нужно выводить текст и данные, работать с текстом просто:

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
--создаем текст
local text = TextField.new(nil, "Hello, world!")
--зададим ему кординаты
text:setX(10)
text:setY(10)
-- добавляем текст в уровень и выводим на екран
stage:addChild(text)



--задать цвет шрифта
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
Textfield: SetTextColor (0xff0000)  -- цвет задается  хекскодом


Чтоб задавать цвет в РГБ :
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local function rgb(r,g,b)
return (r*256+g)*256+b
end

Textfield: SetTextColor (rgb(63,111,127))


--использовать свой собственный шрифт, предварительно добавив файлы в проект
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local myfont = Font.new("font.txt", "font.png")
local text = TextField.new(myfont, "Hello World")
stage:addChild(text)


Вы можете использовать Gideros Studio Font Creator для создания PNG файлов шрифтов из любого TTF шрифтов на вашем компьютере.

также можете использовать любой шрифт TTF добавив файл шрифта в проект

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local myfont = TTFont.new("FtraMd__.ttf", 18)
local text = TextField.new(myfont, "Hello world")
 text:setPosition(10, 10)
 stage:addChild(text)

 

Шрифт 18 и выше размера может подтормаживать потому мы предварительно кешируем все используемые нами символы

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local font = TTFont.new("FtraMd__.ttf", 18, "HELOWRD")
local text = TextField.new(myfont, "HELLO WORLD")
 text:setPosition(10, 10)
 stage:addChild(text)

 

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

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

Чтобы рисовать фигуру мы просто чертим линии указывая координаты, а когда замкнем все линии можем залить фигуру цветом
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local myShape = Shape.new()  --создали фигуру
myShape:setLineStyle(2)  --толщина  линии
myShape:setFillStyle(Shape.SOLID, 0x9900ff)  --цвет и тип заливки
myShape:beginPath()   --рисуем путь из линий
myShape:moveTo(1,1)  --стартовая точка
myShape:lineTo(100,1)
myShape:lineTo(100,100)
myShape:lineTo(1,100)
myShape:lineTo(1,1)
myShape:endPath()  --замыкаем путь в фигуру
stage:addChild(myShape)  -- добавляем фигуру в уровень  у нас вышел квадрат
 


теперь мы можем работать с фигурой :
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
myShape: SETPOSITION ( 75 , 0 )   -- переместить по координатам
myShape: SetRotation ( 45 )  -- повернуть на 45 гр
myShape: SetAlpha ( 0,5 )  -- установить прозрачность 50%
 


Есть несколько вариантов заливки фигуры setFillStyle
myShape:setFillStyle(Shape.SOLID, 0x9900ff)

Shape.SOLID - сплошная заливка
Shape.NONE = Нет заливки
Shape.TEXTURE = закрасить форму из текстурой из пнг картинки

Кроме того, можно менять myShape:myShape:setLineStyle(2). Ширину, цвет и прозрачность

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
myShape:setLineStyle(2, 0x0000FF , 0,5)   -- обводка  2пикс толщиной цветом 0x0000FF  и прозрачность 50%
myShape:setFillStyle ( Shape.SOLID , 0x0000FF , 0,25 )  -- залить сплошным цветом , и прозрачность 25%



Рисование овалов, дуг, кругов
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua

        Arc = gideros.class(Shape)
function Arc:init(t)
   local x          = t.x or t.y or 0
   local y          = t.y or t.x or 0
   local fillStyle  = t.fillStyle or { Shape.SOLID, 0x000000, 0.5 }
   local lineStyle  = t.lineStyle or { 2, 0xffffff, 0.5  }
   local xradius    = t.xradius or t.radius or 100
   local yradius    = t.yradius or t.radius or 100
   local sides      = t.sides or (xradius + yradius)/2  -- кільк граней
   local startAngle = t.startAngle or 0   --  початок дуги 0 - 1
   local arcAngle   = t.arcAngle or 1  --кінець дуги
 
   self:setFillStyle(unpack(fillStyle))
   self:setLineStyle(unpack(lineStyle))
 
   local angleStep = arcAngle / sides
 
   self:setPosition(x,y)
   local xx = math.cos(startAngle*2*math.pi) * xradius
   local yy = math.sin(startAngle*2*math.pi) * yradius
 
   self:beginPath()
   self:moveTo(xx, yy)
   for i = 1,sides do
      local angle = startAngle + i * angleStep
      self:lineTo(math.cos(angle*2*math.pi) * xradius,
                  math.sin(angle*2*math.pi) * yradius)
   end
   self:endPath()
 
   if t.alpha then
      self:setAlpha(t.alpha)
   end
   if t.parent then
      t.parent:addChild(self)
   end
 
   return self
end

--------------------------------------------
--   ИСПОЛЬЗОВАТЬ ТАК
---------------------------------------------
-- рисовать круг
Arc.new{x=700,y=700,xradius=500, yradius=500, sides=20,
              fillStyle = { Shape.NONE , 0x000000, 1 },
              lineStyle = { 3, 0x000000, 1 },
              parent = stage}
-- рисовать дугу
Arc.new{x=600, y=600, radius=100, startAngle=0.25, arcAngle=0.25,
          parent = stage}


 

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 Заголовок сообщения: Re: Gideros Studio _LUA - примеры -основа создания игр
Сообщение
Відсутній
Администратор
Аватара пользователя

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


тут все просто:
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local laserfx = Sound.new("laser.wav")  --открыть звук
laserfx:play()  --проиграть

local gametune = Sound.new("DST-AngryMod.mp3")
gametune:play()
 



функция play() имеет 2 свойства стартовая позиция и кол повторов

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
local gametune = Sound.new("DST-AngryMod.mp3")
gametune:play(100,5)    --проиграется 5 раз начнет с позиции 100
 


чтобы зациклить проигрывание пишем
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
gametune:play(0, true)


установить громкость 1 - 100% 0,5 - 50% и т.д.
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
sndChannel:setVolume(0.5)


остановить проигрывание
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
Soundchannel=gametune:play(0,true)
Soundchannel:stop()  


освободить память после проигрывания
Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
gametune = nil



Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
 Sound.new("ding.wav"):play(0)  -- play once
    Sound.new("ding.wav"):play(0, false)  -- play once
    Sound.new("ding.wav"):play(0, true)  -- looping


Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
  local sound = Sound.new("music.mp3")
    local soundRegion = SoundRegion.new(sound, 1000, 2000) --> 1000 is starting position and 2000 is length
    soundRegion:play() -- play sound region once
    soundRegion:play(0, true) -- play sound region endlessly

_________________

програміст- характерникпошта: admin@simart.info
skype: razorback577
Замовлення не беру


Вернуться к началу
  
 
 [ Повідомлень: 70 ]  На страницу 1, 2, 3, 4, 5, 6, 7  След.
   Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Нет непрочитанных сообщений Урок фотошоп Урок создания реалистичного CD 2282

в форуме не сортированные уроки фотошоп часть:1

Anonymous

0

216

10 вер 2012, 23:46

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

Нет непрочитанных сообщений Урок фотошоп Подробный урок создания Concept Car. 348

в форуме не сортированные уроки фотошоп часть:1

Anonymous

0

216

10 вер 2012, 02:51

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

Нет непрочитанных сообщений урок фотошоп: Быстрый способ создания красочного грандж-пор

в форуме не сортированные уроки фотошоп часть:2

Anonymous

0

296

20 вер 2012, 19:36

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

Нет непрочитанных сообщений урок фотошоп: Два способа создания Tech-lines 312

в форуме не сортированные уроки фотошоп часть:2

Anonymous

0

57

18 вер 2012, 00:05

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

Нет непрочитанных сообщений Урок фотошоп Игра цвета, описание создания нечетких рисунко

в форуме не сортированные уроки фотошоп часть:1

Anonymous

0

161

11 вер 2012, 10:22

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


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


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

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


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

Перейти: