【发布时间】:2015-04-02 23:24:11
【问题描述】:
我正在尝试将变量作为文件名。我想要一个通用命令,当它被子类继承时,可以将文件名设置为变量。
代码编译很有趣,但是当我运行它并按 d 或键移动头像时,我得到一个弹出窗口,说找不到文件:avatarRight
编辑:如果我从参数列表中删除引号并初始化上面的文件名,那么它会运行,但我希望能够初始化子类中的变量,以便多个子类可以有不同的图像
超类方法:
/**
* Sets up the movement keys and facing for the Object
*/
public void movement()
{
String avatarRight = "Alien.png";
String avatarLeft = "Alien1.png";
if (atWorldEdge() == false)
{
if (Greenfoot.isKeyDown("w"))
{
setLocation(getX(), getY()-1);
}
if (Greenfoot.isKeyDown("d"))
{
setImage(avatarRight);
setLocation(getX()+1, getY());
}
if (Greenfoot.isKeyDown("s"))
{
setLocation(getX(), getY()+1);
}
if (Greenfoot.isKeyDown("a"))
{
setImage(avatarLeft);
setLocation(getX()-1, getY());
}
}
else
{
}
}
子类:
public class Alien extends Living
{
private String avatarRight = "Alien.png";
private String avatarLeft = "Alien1.png";
/**
* Act - do whatever the Alien wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
movement();
}
}
【问题讨论】:
-
你有什么问题?
-
代码编译很有趣,但是当我运行它并按 d 或键移动头像时,我得到一个弹出窗口,说找不到文件:avatarRight
-
您应该编辑您的问题并将问题描述放入其中
-
我错过了什么吗?如何将文字字符串
"avatarRight"传递给setImage甚至编译? -
我相信它正在寻找一个名为 avatarRight 的文件,而不是寻找一个变量。所以它编译但是当它需要文件时它找不到它......
标签: java variables filenames greenfoot