该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在其它类中执行
Plane p = new Plane("images/plane.png",50,50);
image/plane.png路径有效。图片可以显示出来。但是Plane类中用img.getwidth(null);方法返回的值一直为-1。请有经验的高手指点一下。在线等
以下是Plane的代码
————————————————————————————
package plane;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import solarframe.Util.GameUtil;
/***
* 飞机类。包含飞机的操作:载入图片,移动。
*
* @author hanwei
*
*/
public class Plane {
Image img;
double x;
double y;
int speed = 10;
boolean up, down, left, right;
int width, height;
// 计算飞机的外切矩形
public Rectangle getRect(){
return new Rectangle((int)x,(int)y, width, height);
}
public void move() {
if (up)
y -= speed;
if (down)
y += speed;
if (left)
x -= speed;
if (right)
x += speed;
}
public void addPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT:
left = true;
break;
case KeyEvent.VK_UP:
up = true;
break;
case KeyEvent.VK_RIGHT:
right = true;
break;
case KeyEvent.VK_DOWN:
down = true;
break;
}
}
public void addReleased(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_LEFT:
left = false;
break;
case KeyEvent.VK_UP:
up = false;
break;
case KeyEvent.VK_RIGHT:
right = false;
break;
case KeyEvent.VK_DOWN:
down = false;
break;
}
}
public Plane() {
}
public Plane(String imgpath, double x, double y) {
this.width = imgtext.getWidth(null);
this.height = imgtext.getHeight(null);
this.x = x;
this.y = y;
System.out.println(x);
System.out.println(imgtext.getWidth(null));
}
public void draw(Graphics g) {
g.drawImage(img, (int) x, (int) y, null);
move();
}
}
——————————————————————————————————