2023-04-22 16:44:26 -05:00
|
|
|
= Yugine Engine
|
|
|
|
|
|
|
|
The yugine essentially is made of a sequence of levels. Levels can be
|
|
|
|
nested, they can be streamed in, or loaded one at a time. Levels are
|
|
|
|
made of levels.
|
|
|
|
|
|
|
|
Different "modes" of using the engine has unique sequences of level
|
|
|
|
loading orders. Each level has an associated script file. Level
|
|
|
|
loading functions call the script file, as well as the level file. The
|
|
|
|
level file can be considered to be a container of objects that the
|
|
|
|
associated script file can access.
|
|
|
|
|
|
|
|
.Game start
|
|
|
|
|
|
|
|
* Engine scripts
|
|
|
|
* config.js
|
|
|
|
* game.lvl & game.js
|
|
|
|
|
|
|
|
.Editor
|
|
|
|
|
|
|
|
* Engine scripts
|
|
|
|
* config.js
|
|
|
|
* editor.js
|
|
|
|
|
|
|
|
.Editor play
|
|
|
|
|
|
|
|
* F5 debug.lvl
|
|
|
|
- Used for custom debug level testing. If doesn't exist, game.lvl is loaded.
|
|
|
|
* F6 game.lvl
|
|
|
|
* F7 Currently edited level
|
|
|
|
|
|
|
|
While playing ...
|
|
|
|
* F7 Stop
|
|
|
|
|
2023-05-01 20:58:10 -05:00
|
|
|
.Level model
|
|
|
|
The game world is made up of objects. Levels are collections of
|
|
|
|
objects. The topmost level is called "World". Objects are spawned into
|
|
|
|
a specific level. If none are explicitly given, objects are spawned
|
|
|
|
into World. Objects in turn are made up of components - sprites,
|
|
|
|
colliders, and so on. Accessing an object might go like this:
|
|
|
|
|
|
|
|
World.level1.enemy1.sprite.path = "brick.png";
|
|
|
|
|
|
|
|
To set the image of enemy1 in level 1's sprite.
|
|
|
|
|
|
|
|
.Textures & images
|
|
|
|
A sprite is a display of a specific texture in the game world. The
|
|
|
|
underlying texture has values associated with it, like how it should
|
|
|
|
be rendered: is it a sprite, is it a texture, does it have mipmaps,
|
|
|
|
etc. Textures are all file based, and are only accessed through the
|
|
|
|
explicit path to their associated image file.
|
|
|
|
|
2023-04-22 16:44:26 -05:00
|
|
|
.Scripting
|
|
|
|
|
|
|
|
Levels and objects have certain functions you can use that will be
|
|
|
|
called at particular times during the course of the game running.
|
|
|
|
|
|
|
|
setup
|
|
|
|
Called once, when the object is created.
|
|
|
|
|
|
|
|
start
|
|
|
|
Called once when the gameplay is simulating.
|
|
|
|
|
|
|
|
update(dt)
|
|
|
|
Called once per frame, while the game is simulating
|
|
|
|
|
|
|
|
physupdate(dt)
|
|
|
|
Called once per physics step
|
|
|
|
|
|
|
|
stop
|
|
|
|
Called when the object is destroyed, either by being killed or otherwise.
|
|
|
|
|
|
|
|
.Collider functions
|
|
|
|
Colliders get special functions to help with collision handling.
|
|
|
|
|
|
|
|
collide(hit)
|
|
|
|
Called when an object collides with the object this function is on.
|
|
|
|
|
|
|
|
"hit" object
|
|
|
|
normal - A vector in the direction the hit happened
|
|
|
|
hit - Object ID of colliding object
|
|
|
|
sensor - True if the colliding object is a sensor
|
|
|
|
velocity - A vector of the velocity of the collision
|