next up previous contents
Next: Arquivo de configuração Up: Scripting Previous: Scripting   Sumário

Sistema de eventos

A idéia inicial era criar uma linguagem de script ou usar uma já existente, infelizmente não foi possível criar o interpretador, portanto acabamos optando por criar um sistema de eventos que pode ser facilmente transformado numa máquina de estados de baixo nível. Entretanto, optamos por não implementar essa funcionalidade devido a restrições de tempo.

Os eventos do jogo são sincronizados pelo número do frame corrente, a cada nova execução do ciclo principal do jogo, o valor de frame é incrementado. O sistema de eventos funciona como uma tabela de hash, o índice da tabela é o numero de um frame, e cada entrada contém uma lista ligada armazenando os eventos que serão executados quando o jogo atingir esse frame. Cada evento é composto por um opcode, que especifica qual o tipo de evento a ser executado (Exs.: Criação de um inimigo, criação de inimigos em formação, criação de itens) e uma lista de parâmetros necessários para a execução desse evento.

Um exemplo retirado de um arquivo de configuração:

OPCODE = CREATE_ENEMY
ENEMY_TOP = GFX
EXPLO = GFX
VARS = (672, 20, 5, 90, ASTEROID, ENEMY_TOP, EXPLO, SPARK, 1)

A linha OPCODE = CREATE_ENEMY representa o opcode de criação de um inimigo específico, a linha VARS = (...) representa os parâmetros necessários para a criação de inimigos (posição, velocidades x e y, inteligência, etc...).


next up previous contents
Next: Arquivo de configuração Up: Scripting Previous: Scripting   Sumário
Alessandro Wilner 2002-12-04