To view the project please go to new
//Kathy Song
//Section D
//yunzhous@andrew.cmu.edu
//Final Project
var trees = [];
var treeWidth = 50;
var treeHeight = 67;
var FL = 380;//y position of finish line
var numMiss = 0;
var combo = 0;
var score = 0;
var happy = "https://i.imgur.com/vDITqlq.png";//happy charlie brown
var backImg = "https://i.imgur.com/Yn5c4pP.jpg";//background image
var gamescreen = "https://i.imgur.com/dboLTcb.jpg";//start screen
var CharlieBrown = "https://i.imgur.com/8OMKsmc.png";
var ChristmasTree = "https://i.imgur.com/mQ5fO5A.png";
var drawScreen = 0;//determines if start screen should be drawn
var mySnd;//background music
var count = 0; //framecount after game starts
function preload(){
mySnd = loadSound("We Wish You A Merry Christmas.wav");//background music
mySnd.setVolume(0.5);
backgroundImg = loadImage(backImg);
screenImg = loadImage(gamescreen);
CLImag = loadImage(CharlieBrown);
treeImg = loadImage(ChristmasTree);
happyImg = loadImage(happy);
}
function setup() {
createCanvas(680, 480);
if (drawScreen == 0){//initial screen
image(screenImg, 0, 0);
textSize(22);
textAlign(CENTER);
text("Click To Start", width/2, height - 40);
}
}
function draw() {
if (drawScreen == 0){
//nothing happens
}
else{//if not initial screen, do following
count += 1;//count frames after game starts
image(backgroundImg, 0, 0);
strokeWeight(2);
stroke(255);
line(0, FL, width, FL);//finish line
fill(0);
textSize(20);
text("Combo " + combo, width - 60, 30);
text("Score " + score, width - 50, 60);
treeFunctions();//trees dropping from sky
addTree();
image(CLImag, mouseX - 20, FL);//charlie brown image with cursor
}
}
function mousePressed(){//after mouse is pressed, draw screen becomes 1,
//initial screen disappears and music starts playing
if (drawScreen == 0) {
drawScreen = 1;
mySnd.play();
}
}
function makeTree(bx, by){//make tree object
var tree = {x: bx,
y: by,
w:treeWidth,
h:treeHeight,
speed: 3,
move: treeMove,
display: treeDisplay,
click:treeClick,
miss:treeMiss,
died: false,//after clicking on the tree, the tree dies and disappear
counted: false,
countedMiss: false,
}
return tree;
}
function treeDisplay(){//draw tree
if(!this.died) {
image(treeImg, this.x, this.y);
}
}
function treeMove() {
this.y += this.speed;//move trees by speed
}
function treeFunctions(){//update tree's position and display them
for (var i = 0; i < trees.length; i++){
trees[i].move();
trees[i].display();
trees[i].click();
trees[i].miss();
}
}
function addTree(){//add new trees
var spacing = 50;
if (count % 50 == 0) {
trees.push(makeTree(30 + random(12) * spacing, 0));
}
}
function treeClick(){
//if click on tree, tree disappear
if (mouseIsPressed & mouseX > this.x && mouseX< this.x + this.w && mouseY > this.y && mouseY < this.y + this.h){
this.died = true;
}
//if click on tree at the finish line, get one point
if (mouseIsPressed & mouseX > this.x && mouseX< this.x + this.w && this.y > FL - this.h && this.y < FL + this.h && !this.counted){
image(happyImg, width - 50, FL);
this.counted = true;
combo += 1;
score += 1;
}
}
function treeMiss(){
//if miss one tree, combo starts from 0
if (this.y >= FL + 5 & !this.countedMiss && !this.counted){
numMiss += 1;
combo = 0;
this.countedMiss = true;
}
}
My final project a game called “Charlie Brown’s Christmas”. Christmas trees would randomly drop form the sky and if the player clicks on the trees, they would disappear. However, the only way the player can get score is by clicking on the tree when it’s at the finish line. If the player continuously getting the tree he or she will receive a combo. If he or she missed one tree the combo would start from zero.
I used a local server. Therefore, to load the html file, you would need to:
- download the zip file and unzip yunzhous_final project
- set up a local server
- open html file in google chrome