Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.mygdx.janelas; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.Screen; import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Camera; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.utils.viewport.ScreenViewport; import java.util.ArrayList; import java.util.List; /** * * @author manue_000 */ public abstract class Janela implements Screen { protected Camera camera; protected Vector3 vetor; protected Stage estagio; protected List<Botao> botoes; protected List<Sound> sons; protected Actor fundo; protected Actor clicado; public Janela() { vetor = new Vector3(); camera = new OrthographicCamera(800, 600); camera.position.set(camera.viewportWidth / 2, camera.viewportHeight / 2, 0); ScreenViewport view = new ScreenViewport(camera); estagio = new Stage(view); sons = new ArrayList<Sound>(); botoes = new ArrayList<Botao>(); } @Override public void render(float f) { GL20 gl = Gdx.gl; gl.glClearColor(0, 0, 0, 0); gl.glClear(GL20.GL_COLOR_BUFFER_BIT); camera.update(); estagio.act(Gdx.graphics.getDeltaTime()); estagio.draw(); cliques(); for (Botao botoe : botoes) { botoe.foiClicado(clicado); } processa(); } // template method abstract void processa(); public void cliques() { if (Gdx.input.isButtonPressed(Input.Buttons.LEFT)) { //Realiza o tratamento das alteraes de dimeno da janela camera.unproject(vetor.set(Gdx.input.getX(), Gdx.input.getY(), 0)); //hit retorna dentre todos os objetos do estagio aquele que foi clicado clicado = estagio.hit(vetor.x, vetor.y, true); if (clicado == fundo) clicado = null; //Se o usuario clicar na boto inciar acao janela do Jogo.getInstance() exibida //qual boto possui a imagem que foi clicada } } }