Шукати в цьому блозі

форум 7

*
Особенности разработки маленьких, мобильных и инди-игр.
взято у:
http://www.murlyka.com/2013/11/20/2d-ingame-1st/


Какие есть советьі для начинающих?
1. Ищите небольшую команду (в идеале найдите одного-пару разработчиков) для прокачки скиллов арта, скиллов работы в команде, и определения точных ваших желаний.
2. Не ищите команду мечтателей об игре «как гта5 только в России».
3. Поработайте забесплатно.
4. Делайте сразу весь ингейм.
5. Начните с проектов, цикл разработки которых не более 1-2 месяцев.
5. Проработайте хотя бы полгода, или выпустите 2-3 проекта для конечного определения.
6. Смотрите и играйте много чужих игр из выбранной вами области/жанра. Много копируйте.
7. Не бойтесь начать нишеваться по жанру. Всегда есть возможность переквалифицироваться в другой жанр.
8. Самое главное — успеть понять что вам интересно и чем вы хотите заниматься в будущем.
9. Не задумывайтесь о нишевании в специализации — это прийдёт само.
10. Много рисуйте, работайте над своим стилем — это второе по важности. Без стиля не будет узнаваемости.
11. Если всё же решились делать что-то в вашей жизни совершенно серьёзно, живите этим делом, отдавая ему все свое свободное время.

_________________

Движение спрайта по произвольному пути пути

Вкладення:
Комментарий к файлу: рисуем путь и сохраняем в масив координатьі точек пути
Снимок.PNG
Снимок.PNG [ 102.41 КБ | Просмотров: 78 ] 


Код:: [ Скачать ] [ Скрыть ] [ Свернуть ]
Синтаксис: Lua
--создаем масив точек:
pike={
        5,4,
        107,56,
        99,108,
        42,123,
        28,84,
        45,38,
        112,21,
        165,41,
        175,110,
        141,182,
        48,236,
        30,232,
        41,175,
        105,156,
        166,174,
        184,215,
        180,254,
        148,293,
        139,311,
        134,329
}


Код:: [ Скачать ] [ Скрыть ] [ Свернуть ]
Синтаксис: Lua
--функция движения от точки к точке  с заданной скоростью
function speed_move2(sprite,x2,y2,speed)



        x1, y1 = sprite:getPosition()

        local d=math.sqrt(math.abs(x1-x2)^2+math.abs(y1-y2)^2)  --довж гіпотенузи

       
        speed=(d/speed)*1000
       
       
        speed=speed/1000*60  --60fps
       

        sprite.move = MovieClip.new{
                        {1, speed, sprite, {= {x1, x2, "inBack"},= {y1, y2, "inBack"}}}  -- проиграть с 1 до 100кадра с движением по оси  Х от 0 до 200
                }
        sprite.move:gotoAndPlay(1)
        sprite.move:addEventListener(Event.COMPLETE ,function()runpath(sprite) end )
end


Класс спрайта которьій двигается по пути
Код:: [ Скачать ] [ Скрыть ] [ Свернуть ]
Синтаксис: Lua
enemy1 = Core.class(Sprite)

function enemy1:init(x,y,path,speed)
       
       
        self.frame={}
        self.frame[1] = Bitmap.new(Texture.new("controllers/enemy1/krovosisi0001.png"))
        self.frame[2] = Bitmap.new(Texture.new("controllers/enemy1/krovosisi0002.png"))
       
       
       
        self.anim = MovieClip.new{
                {1, 3, self.frame[1]},
                {4, 7, self.frame[2]}
               
        }
        self.anim:setGotoAction(7, 1)
        self.anim:gotoAndPlay(1)
        ----------------------------------------------------
       
        self:setPosition(x,y)
        self.x=x
        self.y=y
        self.path=path
        self.speed=speed
        self.step=3
        self:addChild(self.anim)
       

        stage:addChild(self)
       
        runpath(self)
       
end

function runpath(self)

       
        if self.step+1==#self.path then
                self.step=3
                self.x=self:getX()
                self.y=self:getY()
        else
                self.step=self.step+2
        end
       
       
         self.x2=self.x+self.path[self.step]-self.path[1] 
         self.y2=self.y+self.path[self.step+1]-self.path[2]
       
        speed_move2(self,self.x2,self.y2,self.speed)

end
 



и юзаем наш спрайт;

Код:: [ Скачать ] [ Скрыть ]
Синтаксис: Lua
enemy1.new(100,100,pike,50)

Вкладення:
обкладинка.PNG
обкладинка.PNG [ 347.45 КБ | Просмотров: 43 ] 

Вкладення:
Комментарий к файлу: Gideros Mobile Game Development (англійською мовою)
 Gideros Mobile Game Development [eBook].pdf [2.02 МБ] 
Скачиваний: 4 

_________________

Інтеграція Admob і компіляція гри в APK dthcsz 2017.3

додаємо впроект гідероскод визову рекламивпотрібному місці:

Код:: [ Скачать ] [ Скрыть ] [ Свернуть ]
Синтаксис: Lua
require "ads"

admob = Ads.new("admob")

admob:setKey("ca-app-pub-23423424~234234234")-- код клієнта адмоб
admob:showAd("banner","ca-app-pub-234234/23424")  --  код банера
admob:setAlignment("center", "bottom")

admob:showAd("interstitial","ca-app-pub-234234/23424")  --  код міжсторінкової реклами 

 


вказуємо в настройках експорту шлях до SDK, JDK, та ключа підпису, і вмикаємо 2 плагіна як вказано на скрінах, жмемо ок іекспортуємо.
Вкладення:
Комментарий к файлу: настройка експорту
настройкиекспорту.PNG
настройкиекспорту.PNG [ 47.26 КБ | Просмотров: 21 ] 

Вкладення:
Комментарий к файлу: настройка плагіну адмоб
плагін адмоб.PNG
плагін адмоб.PNG [ 61.77 КБ | Просмотров: 21 ] 

Вкладення:
Комментарий к файлу: плагін гуглплей
плагін гуглплей.PNG
плагін гуглплей.PNG [ 62.1 КБ | Просмотров: 21 ] 


Маска 
Вкладення:
Комментарий к файлу: маска
2.png
2.png [ 2.33 КБ | Просмотров: 18 ] 

Вкладення:
3.png
3.png [ 11.82 КБ | Просмотров: 18 ] 

Код:: [ Скачать ] [ Скрыть ] [ Свернуть ]
Синтаксис: Lua
local JigsawVShader=
[[
attribute vec4 POSITION0;
attribute vec2 TEXCOORD0;

uniform mat4 g_MVPMatrix;

varying mediump vec2 texCoord;

void main()
{
        gl_Position = g_MVPMatrix * POSITION0;
        texCoord = TEXCOORD0;
}
]]

local JigsawFShader=[[
uniform lowp sampler2D gMask;
uniform lowp sampler2D gJig;
uniform mediump vec4 jigRect;
uniform mediump vec4 maskInfo;

varying mediump vec2 texCoord;

#ifdef GLES2
precision mediump float;
#endif

void main()
{
        vec4 mask= texture2D(gMask, texCoord);
        if (mask.r<0.5)
                discard;
        vec4 jig=texture2D(gJig, texCoord*jigRect.zw+jigRect.xy);

        gl_FragColor = jig;
}
]]

local JigsawShaderAttrs=
{
{name="POSITION0",type=Shader.DFLOAT,mult=3,slot=0,offset=0},
{name="vColor",type=Shader.DUBYTE,mult=0,slot=1,offset=0},
{name="TEXCOORD0",type=Shader.DFLOAT,mult=2,slot=2,offset=0}
}

local JigsawShaderConstants={
{name="g_MVPMatrix",type=Shader.CMATRIX,sys=Shader.SYS_WVP, vertex=true},
{name="gMask",type=Shader.CTEXTURE,mult=1,vertex=false},
{name="gJig",type=Shader.CTEXTURE,mult=1,vertex=false},
{name="jigRect",type=Shader.CFLOAT4,mult=1,vertex=false},
}


local JigsawShader= Shader.new(
JigsawVShader,JigsawFShader,
Shader.FLAG_FROM_CODE,JigsawShaderConstants,JigsawShaderAttrs)

local jigsaw=Texture.new("1.jpg",true) --картинка
local piece=Pixel.new(Texture.new("2.jpg",true),200,200) --маска  (чорне видаляє)
piece:setTexture(jigsaw,1)
piece:setShader(JigsawShader)
piece:setShaderConstant("jigRect",Shader.CFLOAT4,1,0.1,0.1,0.3,0.3)

application:setBackgroundColor(150)

stage:addChild(piece)
piece:setPosition(50,50)


 

_________________














*

Немає коментарів:

Дописати коментар