DEV Community

Luan Freitas
Luan Freitas

Posted on

2

EP 01 - Criando uma janela para nossa Game Engine

Introdução

Hoje vamos começar a construir nosso motor de jogos, o famoso GAME ENGINE, esse motor de jogos é o responsável por desenhar e processar todos os objetos do nosso jogo em tempo de execução, vamos lá ?

Para nosso jogo começar a ter vida é necessário ter uma interface gráfica para mostrar os objetos do jogo, como jogadores, inimigos e tudo mais, então hoje vamos começar a dar vida para tudo isso.

Construindo a Janela

A primeira coisa que iremos implementar é uma Janela, que será responsável por mostrar o nosso jogo ao usuário, para isso vamos começar construindo uma classe Windows que herda a classe JFrame do java, que constroi uma janela no sistema operacional para nossa aplicação, com isso vamos definir no construtor entrada de parametros para receber a largura e altura que essa janela deverá ter durante a execução.

public class Windows extends JFrame {

    private String mNome;
    private int mLargura;
    private int mAltura;
    private boolean mExecutando;

public Windows(String eNome, int eLargura, int eAltura) {
        mNome = eNome;
        mLargura = eLargura;
        mAltura = eAltura;
        mExecutando = false;
        this.setSize(mLargura, mAltura);
        this.setTitle(mNome);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
    }
 }
Enter fullscreen mode Exit fullscreen mode

Criando a Thread de Execução

Agora que temos uma janela para exibir coisas na tela, vamos implementar uma thread que será responsável por ficar chamando nosso laço de repetição de eventos infinitamente, o famoso GAME LOOP, que será implementado em mais detalhes no próximo artigo.
Para construir a estrutura de uma thread, vamos implementar a classe abstrata Runnable em nossa janela e construir o método run() para executar nosso game loop.

public class Windows extends JFrame implements Runnable {
    @Override
    public void run() {

    }
}
Enter fullscreen mode Exit fullscreen mode

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up