xxxxxxxxxx
92
let spritesheet;
let sprites = [];
//let direction = 0; // 0 up
let step = 0;
let x;
let y;
let speed = 7;
function preload() {
spritesheet = loadImage("runningcat.png");
}
function setup() {
createCanvas(1000, 600);
imageMode(CENTER);
// get the width and hieght of each sprite
let w = spritesheet.width / 2;
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 < 2; x++) {
// get the image subsection there and then store in the array
// sprites[y][x] = spritesheet.get(x * w, y * h, w, h);
sprites.push (spritesheet.get(x * w, y*h, w, h))
}
}
x = width / 2;
y = height / 2;
// imageMode(CENTER);
}
function draw() {
background(255);
//look at sprite sheet to determine which direction is which
if (isKeyPressed == true) {
if (keyCode == RIGHT_ARROW) {
// direction = 0;
x += speed;
}
if (keyCode == RIGHT_ARROW) {
// direction = 1;
x += speed;
}
if (keyCode == RIGHT_ARROW) {
// direction = 2;
x += speed;
}
if (keyCode == RIGHT_ARROW) {
// direction = 3;
x += speed;
}
if (keyCode == LEFT_ARROW) {
// direction = 0;
x -= speed;
if (keyCode == LEFT_ARROW) {
// direction = 1;
x -= speed;
}
if (keyCode == LEFT_ARROW) {
// direction = 2;
x -= speed;
}
if (keyCode == LEFT_ARROW) {
// direction = 3;
x -= speed;
}
}
// keep iterating through the sprites to make the animation happen
// use modulo to loop the animation
if (frameCount % speed == 0) {
step = (step + 1) % 8;
}
}
// the first part choose the diretion (or row)
// and the second part (the step) chooses the proper image from that row
image(sprites[step], width/2, y);
}