質問編集履歴

1 Spriteの追加

Alpa

Alpa score 30

2017/08/13 20:49  投稿

JAVAのエラーの解決方法がわからないです
以下のコードでコンパイルすると以下のエラーが出ます
どのようにしたら解決できるでしょうか
解決策の回答をしくお願いします
```JAVA
package home.tugame;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class TUImageChip
{
   
   Sprite[] m_chip;
   public int[] m_map;
   int m_width;
   int m_height;
   
   public TUImageChip(String fname,int width,int height)throws IOException
   {
       BufferedImage bi=ImageIO.read(new File (fname));
       
       m_width=width;
       m_height=height;
       
       int row=bi.getHeight()/height;//行数
       int clm=bi.getWidth()/width;//列数
       m_chip=new Sprite[row*clm];
       
       for(int i=0,y=0;y<row;y++){
           for(int x=0;x<clm;x++,i++){
               m_chip[i]=new Sprite(bi,x*width,y*height,width,height);
           }
       }
   }
   
   public void MapChip(TUGame tug,int x,int y,int clm,int row)
   {
       for(int b=0;b<row;b++){
           for(int a=0;a<clm;a++){
               int i=m_map[a+b*clm];
               m_chip[i].m_x=m_width*a+x;
               m_chip[i].m_y=m_height*b+y;
               tug.draw(m_chip[i]);
           }
       }
   }
```
```
java:29: エラー: Spriteに適切なコンストラクタが見つかり ません(BufferedImage,int,int,int,int)
                               m_chip[i]=new Sprite(bi,x*width,y*height,width,height);
                                         ^
   コンストラクタ Sprite.Sprite(File,int,int,int,int)は使用できません
     (引数の不一致: BufferedImageをFileに変換できません:)
   コンストラクタ Sprite.Sprite(String,int,int,int,int)は使用できません
     (引数の不一致: BufferedImageをStringに変換できません:)
```  
 
Spriteのコード↓  
 
```JAVA  
package home.tugame;  
 
import javax.swing.*;  
import java.awt.*;  
import java.awt.image.*;  
import java.awt.event.*;  
import java.io.*;  
import javax.imageio.*;  
 
public class Sprite  
{  
   public BufferedImage m_bi;  
   public int m_x=0;  
   public int m_y=0;  
     
   public Sprite(BufferedImage bi)  
   {  
       m_bi=bi;  
   }  
     
   public Sprite(File file,int x,int y,int w,int h)throws IOException  
   {  
       BufferedImage bi=ImageIO.read(file);  
       m_bi=bi.getSubimage(x,y,w,h);  
   }  
     
   public Sprite(String fname,int x,int y,int w,int h)throws IOException  
   {  
         
       BufferedImage bi=ImageIO.read(new File (fname));  
       m_bi=bi.getSubimage(x,y,w,h);  
         
   }  
     
   public void draw(Graphics g)  
   {  
       g.drawImage(m_bi,m_x,m_y,null);  
   }  
     
}  
```
  • Java

    18436 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る