Laurence wrote...
I think I've figured out the problem. The 'Idle.gif' and 'IdleBack.gif' are both single-framed PNGs but I used them to make coding it as a whole easier (very lazy on my part). Would this be the issue?
// change fields
GreenfootImage gifR0 = new GreenfootImage("Idle.png"); // adjust filename as needed
GreenfootImage gifL0= new GreenfootImage("IdleBack.png"); // adjust filename as needed
// in act
if (dx != 0) // not idle
{
if (dx == 1) gif = gifR1; else gif = gifL1;
setImage(gif.getCurrentImage());
}
else // idle
{
if (gif == gifR1) setImage(gifR0);
if (gif == gifL1) setImage(gifL0);
} public Kasu_Marie()
{
int scalePercent = 20;
for (GreenfootImage gif : gifR1.getImages())
{
int wide = gif.getWidth()*scalePercent/100;
int high = gif.getHeight()*scalePercent/100;
gif.scale(wide, high);
}
for (GreenfootImage gif2 : gifL1.getImages())
{
int wide = gif2.getWidth()*scalePercent/100;
int high = gif2.getHeight()*scalePercent/100;
gif2.scale(wide, high);
}
for (GreenfootImage image : gifR0.getImages())
{
int wide = image.getWidth()*scalePercent/100;
int high = image.getHeight()*scalePercent/100;
image.scale(wide, high);
}
for (GreenfootImage image2 : gifL0.getImages())
{
int wide = image2.getWidth()*scalePercent/100;
int high = image2.getHeight()*scalePercent/100;
image2.scale(wide, high);
}
}private void scaleGif(GifImage gif, int scalePct)
{
for (GreenfootImage image : gif.getImages())
{
int wide = image.getWidth()*scalePct/100;
int high = image.getHeight()*scalePct/100;
image.scale(wide, high);
}
}public Kasu_Marie()
{
int scalePercent = 20;
scaleGif(gifR1, scalePercent);
scaleGif(gifR0, scalePercent);
scaleGif(gifL1, scalePercent);
scaleGif(gifL0, scalePercent);
} public Kasu_Marie()
{
int scalePercent = 40;
scaleGif(gifR1, scalePercent);
scaleGif(gifR0, scalePercent);
scaleGif(gifL1, scalePercent);
scaleGif(gifL0, scalePercent);
}
private void scaleGif(GifImage gif, int scalePct)
{
for (GreenfootImage image : gif.getImages())
{
int wide = image.getWidth()*scalePct/100;
int high = image.getHeight()*scalePct/100;
image.scale(wide, high);
}
}public class Kasu_Marie extends Actor
{
private GifImage gifR1 = new GifImage("Run.gif");
private GifImage gifL1 = new GifImage("RunBack.gif");
private GifImage gifR0 = new GifImage("Idle.gif");
private GifImage gifL0 = new GifImage("IdleBack.gif");
private GifImage gif = gifR0;
public void act()
{
int dx = 0;
if (Greenfoot.isKeyDown("d")) dx++;
if (Greenfoot.isKeyDown("a")) dx--;
move(8*dx);
if (dx != 0)
{
if (dx == 1) gif = gifR1; else gif = gifL1;
setImage(gif.getCurrentImage());
}
else
{
if (gif == gifR1) gif = gifR0;
if (gif == gifL1) gif = gifL0;
}
setImage(gif.getCurrentImage());
}
public Kasu_Marie()
{
int scalePercent = 40;
scaleGif(gifR1, scalePercent);
scaleGif(gifR0, scalePercent);
scaleGif(gifL1, scalePercent);
scaleGif(gifL0, scalePercent);
}
private void scaleGif(GifImage gif, int scalePct)
{
for (GreenfootImage image : gif.getImages())
{
int wide = image.getWidth()*scalePercent/100;
int high = image.getHeight()*scalePercent/100;
image.scale(wide, high);
}
}
}