This repository has been archived by the owner on Nov 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
LSW: Biblioteca
Ernesto Luis (aka Lohkdesgds Lhuminury) edited this page Mar 2, 2020
·
9 revisions
Você entrou na home da "engine" LSW!
Os dados aqui são principalmente da versão que está pra sair em breve, a V4.1. Alguns recursos podem não estar presentes ou com nomes e funções diferentes na versão atual.
- A base foi criada em cima da biblioteca gráfica Allegro, atualmente nas 5.x
- 99.9% do código foi criado por mim. Toda a fonte (menos arquivos que contenham dados exclusivos do jogo) está disponível neste repositório. Ele funciona apenas com Visual Studio com C++17 (MinGW talvez não entenda alguns atalhos ou meios de segurança do Visual Studio, ou até mesmo pode não importar algumas propriedades do projeto e falhar)
- Você pode usar esta biblioteca (LSW) em qualquer projeto que queira, desde que referencie algum link a mim ou ao projeto de onde pegou.
- Não garanto que o código sempre tenha o mesmo formato. Updates podem mudar ligeiramente o formato de algumas funções ou totalmente, dependendo do que eu imaginar para o futuro da biblioteca.
- O projeto The Blast e o LSW são separados, então a versão dos dois é diferente.
- Abort: é a classe de "saída" da biblioteca se algo der errado. Se acontecer algum erro, o throw provavelmente vai ser de um Abort::Abort.
- Core: é o coração do sistema. Esse cara controla eventos, entradas do usuário, funções com tempo, colisões, atualização de tela e por aí vai.
- Download: é uma ferramenta que pode ser usada se quiser baixar de um site algum ZIP ou outro arquivo. Ele funciona em cima da API do Windows com WinInet, então provavelmente vai ser a mesma base para sempre.
- Camera: com isso você consegue facilmente manipular o campo de visão do jogo. Ela permite que a base da tela seja na proporção que você quiser (por exemplo, o normal é de -1 a 1 em ambos os eixos) transformada como quiser diretamente da API gráfica.
- Presence: esse é um objeto na tela. Não foi planejado para ser usado por conta própria. É a base para muitos outros "objetos" na tela, como Sprites e Texts.
- Sprite: é uma base para imagens, com limites para colisão, múltiplas texturas (ou não, ou talvez nenhuma) e outras ferramentas. Se quer mostrar uma imagem na tela, coloque dentro de uma Sprite. É baseado no Presence.
- Entity: assim como uma Sprite, também tem 0 ou mais texturas e tem colisão e ferramentas. A diferença é que um Entity tem vida, um Text vinculado a ele, como um player. É baseado no Sprite, logo, baseado também no Presence.
- Text: a ferramenta de texto na tela. Ela contém %tags% para mostrar dados globais ou vinculados a ela. É baseada no Presence.
- BubblesFX: isso é uma Sprite automatizada para desenhar bolas na tela, um efeito interessante usado pelo jogo.
- LiningFX: isso é uma Sprite automatizada para desenhar linhas com um centro no meio da tela, outro efeito usado pelo jogo.
- SHA256: importado desse site e modificado levemente por mim, essa é a ferramenta para gerar hashs e verificar a versão do jogo e do que tiver ao redor do jogo.
- Logger: esse é o registro geral. Defina o caminho e ele vai registrar tudo semelhante a um std::cout. Suporta cores na V4.1 e suporta enviar para queues do Allegro (EVENT_QUEUE).
- Button: uma Sprite + Text + ajustado já para funcionar como um botão.
- Slider: um Button, só que em formato de "barra de volume". Contém duas Sprites e um Text.
- connection_core: a base para comunicações por SOCKETs.
- connection_each: uma base em cima de SOCKETs que permite mandar e receber qualquer tipo de dado entre o cliente e o servidor. Este é no caso o cliente. Roda em cima do connection_core.
- connection_host: uma base em cima de SOCKETs que permite mandar e receber qualquer tipo de dado entre o cliente e o servidor. Este é no caso o servidor. Ele tem 0 ou mais connection_each dentro para comunicar com os clientes. Roda em cima do connection_core.
- Launch: uma base para iniciar outros apps ao lado do seu. Útil, por exemplo, para o addon do Discord que depende de DLL e por isso foi por fora do projeto The Blast.
- Mixer: o controle geral de volume e som.
- Track: cada faixa de música. Efeitos de som, músicas de fundo e muito mais são Tracks.
- Database: o lugar certo para carregar configurações ou compartilhar dados ao redor do programa. É usado para configurações do jogo, debug, comunicação entre threads e dados do Text.
- Display: o controle de tela com funções de print e efeitos de tela globais.
- SuperMap: um incrível template criado por mim semelhante ao std::map, só que muito mais flexível.
- SmartTimer: um incrível template criado por mim usado bastante por threads para múltiplos controles de tempo e eventos de tempo.
- ResourceOf: um template incrível criado por mim para controle do que você imaginar em qualquer lugar do código.
-
CustomThread: uma base para suas threads flexível em cima de
lambdas
(é possível rodar em cima dostd::thread
ouALLEGRO_THREAD
).
- LSW: Biblioteca
- Abort
- Core
- Download
- Camera
- Presence
- Sprite
- Entity
- Text
- BubblesFX
- LiningFX
- SHA256
- Logger
- Button
- Slider
- connection_core
- connection_each
- connection_host
- Launch
- Mixer
- Track
- Database
- Display
- SuperMap
- SmartTimer
- ResourceOf
- CustomThread
- Shared