initial
This commit is contained in:
74
character.js
Normal file
74
character.js
Normal file
@@ -0,0 +1,74 @@
|
||||
var c = {
|
||||
velocity: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
},
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
},
|
||||
size: 50,
|
||||
img: null,
|
||||
jump() {
|
||||
if ( this.velocity <= 0.15 ) {
|
||||
this.velocity.y = -5;
|
||||
}
|
||||
},
|
||||
step() {
|
||||
// Apply Gravity on our velocity.
|
||||
this.velocity.y = this.velocity.y + 0.15;
|
||||
|
||||
// Check for collision with platform ONLY WHEN FALLING.
|
||||
if ( this.velocity.y > 0 ) {
|
||||
let newY = false;
|
||||
let charXLeft = this.pos.x;
|
||||
let charXRight = this.pos.x + this.size;
|
||||
|
||||
let charYTop = this.pos.y
|
||||
let charYBottom = this.pos.y + this.size
|
||||
|
||||
for ( let p of getPlatforms() ) {
|
||||
// Is the X coord colliding?
|
||||
let isXColliding = false;
|
||||
|
||||
let pLeft = p.position.x;
|
||||
let pRight = p.position.x + p.size.x;
|
||||
let pTop = p.position.y;
|
||||
let pBot = p.position.y + p.size.y;
|
||||
|
||||
// Check Left/Right collision
|
||||
if ( charXLeft < pRight && charXLeft > pLeft ) {
|
||||
isXColliding = true;
|
||||
} else if ( charXRight < pRight && charXRight > pLeft ) {
|
||||
isXColliding = true;
|
||||
}
|
||||
|
||||
if ( isXColliding ) {
|
||||
// Check if touching platform
|
||||
if ( charYBottom < pBot && charYBottom > pTop ) {
|
||||
newY = pTop - this.size;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( newY != false ) {
|
||||
this.velocity.y = 0;
|
||||
this.pos.y = newY;
|
||||
}
|
||||
}
|
||||
|
||||
// Applying the velocity to our character position
|
||||
this.pos.x = this.pos.x + this.velocity.x;
|
||||
this.pos.y = this.pos.y + this.velocity.y;
|
||||
|
||||
this.pos.x = mouseX;
|
||||
},
|
||||
draw() {
|
||||
fill(255, 125, 125);
|
||||
if ( this.img != null ) {
|
||||
image(this.img, c.pos.x, c.pos.y, this.size*1.25, this.size*1.25);
|
||||
}
|
||||
// square(c.pos.x, c.pos.y, c.size)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user