Android games
Игры для Андроид
среда, 24 января 2018 г.
Структура пиксельного шейдера на примере еффекта "Хроматическая аберрация"
Подготовку проекта в AGK смотрите ЗДЕСЬ.
Рассмотрим пиксельный шейдер "Хроматическая аберрация" для App Game Kit на языке GLSL:
uniform sampler2D texture0;
varying mediump vec2 uvVarying;
uniform vec2 agk_resolution;
uniform float agk_sintime;
uniform float agk_time;
void main()
{
vec2 scale = 1.0/agk_resolution;
vec4 color = vec4(texture2D(texture0, uvVarying ).rgba);
vec2 UV_MOD=vec2(3.0*agk_sintime*agk_sintime , 0.0 );
color.r = texture2D(texture0, uvVarying+UV_MOD*scale).r;
gl_FragColor = color;
}
Рассмотрим пиксельный шейдер "Хроматическая аберрация" для App Game Kit на языке GLSL:
uniform sampler2D texture0;
varying mediump vec2 uvVarying;
uniform vec2 agk_resolution;
uniform float agk_sintime;
uniform float agk_time;
void main()
{
vec2 scale = 1.0/agk_resolution;
vec4 color = vec4(texture2D(texture0, uvVarying ).rgba);
vec2 UV_MOD=vec2(3.0*agk_sintime*agk_sintime , 0.0 );
color.r = texture2D(texture0, uvVarying+UV_MOD*scale).r;
gl_FragColor = color;
}
четверг, 26 ноября 2015 г.
Движение объекта по кругу (2D)
Рассмотрим простой алгоритм движения спрайта по кругу с заданной скоростью и заданным радиусом движения.
Мы будем использовать две тригонометрические функции: синус и косинус. Синус будет задавать изменение координаты X, а косинус - Y.
Для примера я взял картинки с игры The Binding of Isaac. В игре мухи "защитные" спутники летают вокруг Айзека по кругу. Сделаем тоже самое и мы!
В примере будут 3 основных объекта: главный персонаж и две мухи, которые будут летать вокруг него.
Мы будем использовать две тригонометрические функции: синус и косинус. Синус будет задавать изменение координаты X, а косинус - Y.
Для примера я взял картинки с игры The Binding of Isaac. В игре мухи "защитные" спутники летают вокруг Айзека по кругу. Сделаем тоже самое и мы!
В примере будут 3 основных объекта: главный персонаж и две мухи, которые будут летать вокруг него.
среда, 18 ноября 2015 г.
Расстояние до цели (2D)
Иногда в своих играх нужно определить расстояние до цели (дальность выстрела, аура, урон и тд). Тогда нужно использовать простейшую формулу с геометрии - теорему Пифагора (сума квадратов катетов прямоугольного треугольника равна квадрату гипотенузы).
Нам нужно найти гипотенузу треугольника ( с ). Для этого найдем сначала длину каждого катета. Катет "b" является осью X, поэтому нужно отнять х-координату первой точки от х-координаты второй точки х=х2-х1 (или наоборот x=х1-х2, на результат это не повлияет). Катет "а" это ось Y: y=y2-y1. После этого подносим к квадрату x и y, суммируем значения и находим корень квадратный. Всё просто :)
Как это будет выглядеть в AGK (напишем функцию):
Function Distance(x1,y1,x2,y2)
x=x2-x1
y=y2-y1
result#=Sqrt(x*x+y*y)
endfunction result#
Подписаться на:
Сообщения (Atom)