xxxxxxxxxx
77
let spritesheet;
let sprites = [];
let direction = 1; // 0 up
let step = 0;
let x;
let y;
let speed = 5;
function preload(){
spritesheet = loadImage("walking.png");
}
function setup() {
createCanvas(600,600);
imageMode(CENTER);
// get the width and hieght of each sprite
let w = spritesheet.width/12;
let h = spritesheet.height/4;
// there are four rows, create a for loop to iterate through them
for (let y=0; y < 4; y++) {
// create another emoty array for that row
sprites[y] = [];
// there are 12 images in a row, iterate through them
for (let x=0; x< 12; x++) {
// get the image subsection there and then stor in the array
sprites[y][x] = spritesheet.get(x*w, y*h, w, h);
}
}
x = width/2;
y = height/2;
}
function draw() {
background(255);
//look at sprite sheet to determine which direction is which
if (isKeyPressed == true) {
if (keyCode == DOWN_ARROW) {
direction = 0;
y+=speed;
}
if (keyCode == LEFT_ARROW) {
direction = 1;
x-=speed;
}
if (keyCode == RIGHT_ARROW) {
direction = 2;
x+=speed;
}
if (keyCode == UP_ARROW) {
direction = 3;
y-=speed;
}
// keep iterating through the sprites to make the animation happen
// use modulo to loop the animation
if (frameCount%3==0) {
step = (step+1) % 12;
}
}
// the first part choose the diretion (or row)
// and the second part (the step) chooses the proper image from that row
image(sprites[direction][step], x, y);
}