226 lines
6.7 KiB
JavaScript
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)
|
|
}
|
|
|