Pixl.js Pong Game
This is a very simple two player Pong game made using Pixl.js and two potentiometers. See the video above for full details on how it was made.
To use this, wire:
- One side of each potentiometer to the GND pin on Pixl.js
- The other side of each potentiometer to the 3.3v pin on Pixl.js
- The left potentiometer to pin
A0
- The right potentiometer to pin
A1
Get connected to Espruino with the Web IDE, copy and paste the following code into the right-hand side of the IDE, and click the upload button!
For a two-player, two-Pixl.js based version of Pong, see this page
Source Code
var BATSIZE = 8;
var scorel = 0;
var scorer = 0;
var ball;
function newGame() {
ball = {
x : g.getWidth()/2,
y : g.getHeight()/2,
vx : (Math.random()>0.5)?1:-1,
vy : (Math.random()-0.5)*2
};
}
function onFrame() {
var batl = analogRead(A0) * g.getHeight();
var batr = analogRead(A1) * g.getHeight();
ball.x += ball.vx;
ball.y += ball.vy;
if (ball.y<=0) ball.vy = Math.abs(ball.vy);
if (ball.y>=g.getHeight()-1) ball.vy = -Math.abs(ball.vy);
if (ball.x<5 &&
ball.y>batl-BATSIZE && ball.y<batl+BATSIZE) {
ball.vx = Math.abs(ball.vx);
}
if (ball.x>g.getWidth()-6 &&
ball.y>batr-BATSIZE && ball.y<batr+BATSIZE) {
ball.vx = -Math.abs(ball.vx);
}
if (ball.x<0) {
scorer++;
newGame();
}
if (ball.x>g.getWidth()-1) {
scorel++;
newGame();
}
g.clear();
g.fillRect(0,batl-BATSIZE, 3,batl+BATSIZE);
g.fillRect(g.getWidth()-4,batr-BATSIZE, g.getWidth()-1,batr+BATSIZE);
g.fillRect(ball.x-1,ball.y-1,ball.x+1,ball.y+1);
g.setFontAlign(-1,-1);
g.drawString(scorel, 10,0);
g.setFontAlign(1,-1);
g.drawString(scorer, g.getWidth()-10,0);
g.flip();
}
newGame();
setInterval(onFrame, 50);
This page is auto-generated from GitHub. If you see any mistakes or have suggestions, please let us know.