xxxxxxxxxx
149
let fft;
var mySound;
var groundSprites;
var player;
var GROUND_SPRITE_WIDTH = 500;
var GROUND_SPRITE_HEIGHT = 50;
var numGroundSprites;
var sequenceAnimation;
let spectrum;
let mic;
var createButton;
var GRAVITY = 0.9;
var JUMP = -9;
var sizex = 10;
var sizey = 10;
let countEndGame = 0;
var yoshi;
function preload() {
soundFormats('mp3', 'ogg');
mySound = loadSound('assets/8bit.ogg');
yoshi = loadAnimation('output-0.png', 'output-1.png', 'output-2.png', 'output-3.png');
}
function setup() {
frameRate(60);
mic = new p5.AudioIn();
fft = new p5.FFT();
fft.setInput();
mySound.setVolume(0.3);
mySound.play();
obstacleSprites = new Group();
player = createSprite(100, height - 75, sizex, sizey);
player.addAnimation("ouput", yoshi);
createCanvas(500, 500);
//resetSketch();
background(150, 200, 250);
groundSprites = new Group();
numGroundSprites = width / GROUND_SPRITE_WIDTH * 500
for (var n = 0; n < numGroundSprites; n++) {
//CREATION OF GROUNDSPRITE
var groundSprite = createSprite(
n * 200,
height - 20,
GROUND_SPRITE_WIDTH,
GROUND_SPRITE_HEIGHT
)
groundSprites.add(groundSprite)
}
var button = createButton("reset");
button.mousePressed(resetSketch);
function resetSketch(){
clear();
setup();
}
}
function draw() {
background(0, 0, 0);
//let spectrum = fft.analyze();
//blendMode(DIFFERENCE);
//noStroke();
//fill(95,20,20,5);
//beginShape();
//for (i = 0; i < spectrum.length; i++) {
//vertex(i, map(spectrum[i], random(60), random(100,200), random(height), random(20)));
//print(spectrum[i]);
// }
//endShape();
// background waves not working
if (groundSprites.overlap(player)) {
player.velocity.y = 0
player.position.y = height - 50 - 2.5*countEndGame - player.height / 5// divide by 3 makes smooth
}
if (player.position.y <=0) {
player.position.y=0 +player.height/2
}
if (keyDown(UP_ARROW)) {
player.velocity.y = JUMP
}
player.velocity.y = player.velocity.y + GRAVITY
player.position.x = player.position.x + 10
camera.position.x = player.position.x + width / 4
var firstGroundSprite = groundSprites[0]
if (firstGroundSprite.position.x <= camera.position.x - width / 2) {
groundSprites.remove(firstGroundSprite)
firstGroundSprite.position.x =
firstGroundSprite.position.x + numGroundSprites * firstGroundSprite.width/3
groundSprites.add(firstGroundSprite)
}
if (random() > 0.95-0.05) {
var obstacle = createSprite(
camera.position.x + width,
random(0, height - 50 - 15 - countEndGame*2.5),25,4
)
obstacleSprites.add(obstacle)
var firstObstacle = obstacleSprites[0]
if (
obstacleSprites.length > 0 &&
firstObstacle.position.x <=
camera.position.x - (width / 2 + firstObstacle.width / 4)
) {
removeSprite(firstObstacle)
}
}
obstacleSprites.overlap(player, endGame)
drawSprites()
}
function endGame() {
countEndGame=countEndGame+1;
for (i=0;i<=groundSprites.length;i++){
if(groundSprites[i]!=null)
groundSprites[i].height=groundSprites[i].height+5
}
GROUND_SPRITE_HEIGHT=GROUND_SPRITE_HEIGHT+30
console.log('Game Over!')
}