9月25日关于Sprite非法参数异常的问题

 今天在学习使用Sprite包装Image实现手机页面动画效果的时候,在Canvas构造函数中,抛出了java.lang.IllegalArgumentException异常,我看视频教程,不断的看了几个小时,最后终于找到原因:第9行,image.getWidth()/15,在Sprite初始化的时候,如果image.getWidth()/15不能整除,将会抛出非法参数的异常,经测试果然不能整除! 注意new Sprite(image,int,int)方法里的参数类型,图片的大小必须能够整除15,每个帧数图片大小必须一致,所以解决方法只有改变image的属性width的大小

代码
1 class MyCanvas extends GameCanvas{
2 private Image image;
3 private Sprite sprite;
4 private Graphics graphics;
5 public MyCanvas(){
6 super(true);
7 try {
8 image = Image.createImage("/paotai.PNG");
9 sprite = new Sprite(image, image.getWidth()/15, image.getHeight());
10 System.out.println(image.getWidth());
11 graphics = this.getGraphics();
12 } catch (IOException e) {
13 // TODO Auto-generated catch block
14   e.printStackTrace();
15 }
16 sprite.paint(graphics);
17 }
18 }
原文地址:https://www.cnblogs.com/cuiliang/p/1834251.html