Bueno pues completadas las colisiones con id jeje. por fin!!
Mini motor para juegos listos!
Claro tio, phaser3 lleva pixi.js detras, eso es una gran libreria tio.. pixi.js es un referente en el mundo web, su performance es una pasada.
Lo mio es un Div Games Studio tio.. no es lo mismo..
Para que te hagas una idea Oscar, esto es un pequeño test en gameLibZeroJS, pone en pantalla unos cuantos procesos tontos y un proceso con ID = PERSONAJE;
El concepto de que en JS todo son objetos al principio desconcierta un poco si vienes de Div.. pero tio.. no hay color.. y bueno.. JS es lento no se de donde lo sacas, JS por ejemplo es unos cuantos cientos de veces mas rapido que gemix por ejemplo, lo que es lento es el render sin aceleracion grafica, pixi.js por ejemplo tiene benchmaks muy buenos.. pero te repito, es lento pintando, procesando "para ser un lenguaje interpretado" es mucho mas rapido de lo que te crees, puedes procesar listas de cientos de miles de objetos a cada frame a 60 fps en una mierda de pc.. te lo digo de verdad.. no es lento para nada, claro.. C es mas rapido nos has jodio XD.. pero JS corre mas de lo que se cree la gente.
Mira esto es un pequeño ejemplo de un programa tonto en gameLibZeroJS:
var img = [];
var fnt = [];
var st = 0;
var personaje;
//---------------------------------------------------------------------------------
function preload() {
img = loadImages("data/images/", 4);
fnt[0] = loadFont("data/fonts/Cartoon_Regular.ttf");
}
//---------------------------------------------------------------------------------
function setup() {
setMode(640, 400);
setFps(60);
world.gravity.y = 0;
}
//---------------------------------------------------------------------------------
function main(){
switch(st){
case 0:
personaje = new Sprite();
personaje.graph = img[1];
personaje.x = 320;
personaje.y = 250;
personaje.size= 25;
personaje.createBody(TYPE_BOX);
personaje.setMaterial(WOOD);
//personaje.setSensor(true);
console.log(personaje);
personaje.frame = function(){
if(tecla(_UP)){
this.addVy(-0.01);
}
if(tecla(_DOWN)){
this.addVy(0.01);
}
if(tecla(_LEFT)){
this.addVx(-0.01);
//this.addRotation(-0.01);
}
if(tecla(_RIGHT)){
this.addVx(0.01);
//this.addRotation(0.01);
}
if(mouse.left){
var a = this.getAngle(mouse.x, mouse.y);
this.addVelocity(a, 0.005);
}
}
for(var i=0; i<200; i++){
var id = new Sprite();
id.x = random(40, 600);
id.y = random(40, 360);
id.size = 10;
id.z = 0;
id.graph = img[0];
id.createBody(TYPE_CIRCLE);
id.frame = function (){
if(this.collision(personaje)){
signal(this, s_kill);
}
if( this.collisionMouse() ){
screenDrawText(null, 22, "!!!!!", 4, this.x, this.y, 255, 255);
}
}
}
st = 10;
break;
case 10:
screenDrawGraphic(img[4], 320, 200, 0, 100, 100, 255);
screenDrawText(fnt[0], 58, int(frameRate()), 4, 320, 30, color(234, 226, 2), 255);
break;
}
}
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
Y ahora te cuelgo un video enseñandote el resultado de eso..