2011-08-11 3 views
0

私は大きな画像を切り詰めてゲームのタイルとして使用しようとしていました。 fillRect()を使って画像をシミュレートするプログラムを作っていました。しかし、私がfillRectコードを置き換えると、クラッシュします。ここで私が使用してきたものです:画像を切り抜こうとするとJavaアプレットがクラッシュする

buffer.drawImage(section[i][j].getSectionImage(i, j), 
    sectionSize * i + OFFSETx, 
    sectionSize * j + OFFSETy, 
    this); 

public class Section{ 
    private static ImageIcon ii; 
    private static Image mainImage; 
    private Image sectionImage; 

    public Section(){ 
     if (ii == null){ 
     ii = new ImageIcon(this.getClass().getResource("images/Mossy_rocks.png")); 
     mainImage = ii.getImage(); 
     } 
    } 
    public Image getSectionImage(int x, int y){ 
     sectionImage = createImage(new FilteredImageSource(mainImage.getSource(), 
     new CropImageFilter(1,1,20,20))); //test values 
     return sectionImage; 
    } 
} 

私は、セクションクラスの「JAppletの/ JFrameの/ JComponentのを拡張する」しようとしたが、助けていないようでした。

編集:getSectionImage()からmainImageを返すだけであれば、イメージを取得することもできます。私は最大の問題はその機能の残りの部分だと思う...しかし、私は確信していないので、私はfillRect()を置き換えるときに追加する必要があるすべてを含めた。

+1

デバッグを試しましたか? – Tom

+0

コンソールは例外ですか? – home

+0

どのラインがクラッシュするのですか?変数の値は何ですか? – Randy

答えて

0

私はこの画像を切り抜くより良い方法を見つけました。ここで私はそれをやった方法です:

screenImage.drawImage(Image sprite, 
       int (x position on screen), 
       int (y position on screen), 
       int (x position on screen + width), 
       int (y position on screen + height), 
       int (x position from sprite), 
       int (y position from sprite), 
       int (x position from sprite + width), 
       int (y position from sprite + height), 
       null);