Joshua Shoemaker bf2572e3e9 Init
2016-11-22 22:48:39 -06:00

226 lines
6.7 KiB
JavaScript

//This `setup` function will run when the image has loaded
function playerSetup() {
//------------------Add Sprites to Animations-----------------
dead.id = PIXI.loader.resources["assets/sprites/octocat/octocatDead.json"].textures;
idle.id = PIXI.loader.resources["assets/sprites/octocat/octocatIdle.json"].textures;
walk.id = PIXI.loader.resources["assets/sprites/octocat/octocatWalk.json"].textures;
hurt.id = PIXI.loader.resources["assets/sprites/octocat/octocatHurt.json"].textures;
jump.id = PIXI.loader.resources["assets/sprites/octocat/octocatJump.json"].textures;
//Setup the player
player = new Sprite(idle.id["catIdle_"+idle.frameIndex]);
player.canControl = true;
player.anchor.x = 0.5;
player.anchor.y = 1;
player.vx = 0;
player.vy = 0;
player.x = 810;
player.y = 695;
player.width = 45;
player.height = 45;
player.currentAnimation = idle;
player.health = 1;
player.jumped = false;
player.isHurt = false;
player.isPressingActive = false;
player.isClimbing = false;
player.alive = function () {
if(player.health > 0){
return true;
}
else{
player.health = 0;
return false;
}
}
player.isGrounded = function(){
let collision = b.rectangleCollision(player, platforms[0], false, false, false) ||
b.rectangleCollision(player, platforms[1], false, false, false) ||
b.rectangleCollision(player, platforms[2], false, false, false) ||
b.rectangleCollision(player, platforms[3], false, false, false) ||
b.rectangleCollision(player, platforms[4], false, false, false) ||
b.rectangleCollision(player, platforms[5], false, false, false) ||
b.rectangleCollision(player, platforms[6], false, false, false) ||
b.rectangleCollision(player, platforms[7], false, false, false) ||
b.rectangleCollision(player, platforms[8], false, false, false) ||
b.rectangleCollision(player, platforms[9], false, false, false) ||
b.rectangleCollision(player, platforms[10], false, false, false);
if(collision === "bottom"){
if(player.alive() && !player.isHurt){
if(player.vx == 0){
player.currentAnimation = idle;
}
if(player.vx != 0){
player.currentAnimation = walk;
}
}
return true;
}
else{
if(!player.isHurt){
player.currentAnimation = jump;
}
return false;
}
};
player.direction = function(){
if(player.scale.x = 1)
return "right";
else
return "left";
}
player.hurt = function(){
if(!player.isHurt){
player.isHurt = true;
player.health--;
player.canControl = false;
player.vx = 0;
if(player.alive()){
player.currentAnimation = hurt;
setTimeout(function(){
player.canControl = true;
player.vx = 0;
player.currentAnimation = idle;
player.isHurt = false;
}, 500);
}
else{
player.canControl = false;
player.currentAnimation = dead;
player.vx = 0;
deathsfx.play();
walkingsfx.mute(true);
hackingsfx.mute(true);
}
}
};
player.Animate = function(){
setTimeout(function(){
player.texture = player.currentAnimation.play();
player.Animate();
}, player.currentAnimation.fps);
}
player.Update = function () {
if(b.hit(player, ladder, false, false)){
player.isClimbing = true;
platforms[4].width = 0;
}
else{
player.isClimbing = false;
platforms[4].width = 1280;
}
if(!player.isGrounded() && !player.jumped && !player.isClimbing){
player.vy = 10;
}
else if(player.jumped){
player.vy = -10;
}
if(!player.alive()){
player.vx = 0;
}
player.x += player.vx;
player.y += player.vy;
if(b.hit(player, enemies[0], false)){
if(isInRange(getDistance(player, enemies[0]), 73)){
player.hurt();
}
}
if(b.hit(player, enemies[1], false)){
if(isInRange(getDistance(player, enemies[1]), 73)){
player.hurt();
}
}
b.hit(player, walls[0], true, false);
b.hit(player, walls[1], true, false);
b.hit(player, walls[2], true, false);
b.hit(player, walls[3], true, false);
b.hit(player, walls[4], true, false);
b.hit(player, walls[5], true, false);
b.hit(player, walls[6], true, false);
b.hit(player, walls[7], true, false);
requestAnimationFrame(player.Update);
};
player.Update(); //Repeats every Frame
player.Animate(); //Stand alone loop for object animations
keyStrokeSetup(); //Sets up player Controller
stage.addChild(player);
return true;
}
//Create Animations
var idle = {
id: {},
frameIndex: 1,
frameLength: 22,
play: function(){
return this.id["catIdle_" + (this.frameIndex = nextAnimationFrame(this))];
},
fps: setAnimationFPS(24)
}
var walk = {
id: {},
frameIndex: 1,
frameLength: 21,
play: function(){
return this.id["catWalk_" + (this.frameIndex = nextAnimationFrame(this))];
},
fps: setAnimationFPS(30)
}
var hurt = {
id: {},
frameIndex: 1,
frameLength: 22,
play: function(){
return this.id["catHurt_" + (this.frameIndex = nextAnimationFrame(this))];
},
fps: setAnimationFPS(30)
}
var dead = {
id: {},
frameIndex: 1,
frameLength: 1,
play: function(){
return this.id["catDead_1"];
},
fps: setAnimationFPS(30)
}
var jump = {
id: {},
frameIndex: 1,
frameLength: 20,
play: function(){
return this.id["catJump_" + (this.frameIndex = nextAnimationFrame(this))];
},
fps: setAnimationFPS(30)
}