JSFiddle - React, Tailwind, and code Playground
by Ilya Karpuk
JavaScript
var Aiord = { REVISION : '0.1 Beta' }
Aiord.World = function ( params ){
var bodies = [];
var map = params.map || [[]];
var tileSize = params.tileSize || 50;
this.addBody = function ( a ){ bodies.push( a ); }
this.getBodies = function (){ return bodies; }
this.setMap = function ( a ){ map = a; }
this.getMap = function (){ return map; }
}
Aiord.Body = function ( params ){
var scope = this;
var colliders = [];
var isStatic = ( params.static == undefined )?false:params.static;
var pivot = params.pivot || [ 0.5, 0.5 ];
this.addCollider = function ( a ){ colliders.push( a ); return scope; }
this.rotate = function ( angle ){
angle = angle * Math.PI / 180.0;
for ( var i = 0; i < cooliders.length; i++ ){
for ( var j = 0; j < colliders[0].length; j += 2 ){
colliders[i][j] = Math.cos(angle) * (colliders[i][j]-pivot[0]) - Math.sin(angle) * (colliders[i][j+1]-pivot[1]) + pivot[0];
colliders[i][j+1] = Math.sin(angle) * (colliders[i][j]-pivot[0]) - Math.cos(angle) * (colliders[i][j+1]-pivot[1]) + pivot[1];
}
}
};
this.copy = function (){ return scope; }
}
Aiord.Map = function (){
var tiles = [];
this.setTile = function ( index, body ){
tiles.push( { index: ''+index, body: body } );
}
}
Aiord.Collider = function ( verticles ){
var verts = verticles;
}
var world = new Aiord.World( {
tileSize: 50;
} );
var LEFT_TOP_CORNER = new Aiord.Body( {
static: true;
} )
.addCollider( new Aiord.Collider( [ 0.1, 1, 0.1, 0.1, 1, 0.1 ] ) )
.addCollider( new Aiord.Collider( [ 0.9, 1, 0.9, 0.9, 1, 0.9 ] ) );
var RIGHT_TOP_CORNER = LEFT_TOP_CORNER.copy().rotate( 90 );
var RIGHT_TOP_CORNER = LEFT_TOP_CORNER.copy().rotate( 90 );
var RIGHT_TOP_CORNER = LEFT_TOP_CORNER.copy().rotate( 90 );