UNPKG

littlejsengine

Version:

LittleJS - Tiny and Fast HTML5 Game Engine

40 lines (35 loc) 1.35 kB
// globals objects let paddle, ball; class PhysicsObject extends EngineObject { constructor(pos, size) { super(pos, size); // set object position and size this.setCollision(); // make object collide this.mass = 0; // make object have static physics } } function gameInit() { // setup level const levelSize = vec2(38, 21); // size of play area cameraPos = levelSize.scale(.5); // center camera in level canvasFixedSize = vec2(1280, 720); // use a 720p fixed size canvas // create objects paddle = new PhysicsObject(vec2(0,1), vec2(6,1)); // create player's paddle new PhysicsObject(vec2(-.5,levelSize.y/2), vec2(1,100)); // left wall new PhysicsObject(vec2(levelSize.x+.5,levelSize.y/2), vec2(1,100)); // right wall new PhysicsObject(vec2(levelSize.x/2,levelSize.y+.5), vec2(100,1)); // top wall } function gameUpdate() { if (!ball || ball.pos.y < -1) // spawn ball { ball && ball.destroy(); // destroy old ball ball = new PhysicsObject(cameraPos); // create a ball ball.velocity = vec2(.2); // give ball some movement ball.elasticity = 1; // make ball bounce ball.mass = 1; // make ball have dynamic physics } paddle.pos.x = mousePos.x; // move paddle to mouse }