2013-09-02 2 views
0

저는 프로그래밍 2 클래스에 있으며 교수는 우리가 결국 게임으로 발전 할 클래스를 만들기를 원합니다. 내가 가지고있는 문제는 클래스에 파일을 추가하는 방법을 모른다는 것이므로 테스터를 사용할 때 오류가 발생하지 않습니다. 나는 그 파일에 대해 아무 것도하지 않아도된다. 필자는 myPlayer2 이후 테스터에서 몇 가지 인스턴스를 만들 필요가 있지만이 작업을 수행하는 방법은 확실하지 않습니다. 이 코드와 코드가 의미가 있기를 바랍니다. 고맙습니다.클래스에 간단한 GIF 추가

import java.io.File; 



public class myPlayer { 

private String name; 
private String gender; 
private String role; 
private int health; 
private String state; 
private File sprite = new File("MarioSprite.gif"); 
/** 
* constructor for the game player 
* @param name-- the players name 
* @param gender -- the players gender 
* @param role -- role such as boss, healer, demon, knight 
* @param health -- percentage of health 
* @param state -- whether player is alive, dead, active, inactive, sleeping 
* @param sprite -- this is the sprite file for the class 
*/ 

// the file name is MarioSprite.gif 

public myPlayer(){ 
    name = " unknown"; 
    gender = " unknown"; 
    role = " not defined"; 
    health = 0; 
    state = " not defined"; 
    sprite = null; 
} 
public myPlayer(String name, String gender, String role, int health, String state, File sprite){ 
    this.name = name; 
    this.gender = gender; 
    this.role = role; 
    this.health = health; 
    this.state = state; 
    this.sprite = sprite; 
} 
/** 
* @return the name 
*/ 
public String getName() { 
    return name; 
} 
/** 
* @param the name to set 
*/ 
public void setName(String name) { 
    this.name = name; 
} 
/** 
* @return the gender 
*/ 
public String getGender() { 
    return gender; 
} 
/** 
* @param the gender to set 
*/ 
public void setGender(String gender) { 
    this.gender = gender; 
} 
/** 
* @return the role 
*/ 
public String getRole() { 
    return role; 
} 
/** 
* @param the role to set 
*/ 
public void setRole(String role) { 
    this.role = role; 
} 
/** 
* @return the health 
*/ 
public int getHealth() { 
    return health; 
} 
/** 
* @param the health to set 
*/ 
public void setHealth(int health) { 
    this.health = health; 
} 
/** 
* @return the state 
*/ 
public String getState() { 
    return state; 
} 
/** 
* @param the state to set 
*/ 
public void setState(String state) { 
    this.state = state; 
} 
/** 
* @return the sprite 
*/ 
public File getSprite() { 
    return sprite; 
} 
/** 
* @param the sprite to set 
*/ 
public void setSprite(File sprite) { 
    this.sprite = sprite; 
} 
/* (non-Javadoc) 
* @see java.lang.Object#toString() 
*/ 
@Override 
public String toString() { 
    return "myPlayer [name=" + name + ", gender=" + gender + ", role=" 
      + role + ", health=" + health + ", state=" + state 
      + ", sprite=" + sprite + "]"; 
} 
} 

public class myPlayerTester { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub  
    myPlayer myPlayer1, myPlayer2, myPlayer3, myPlayer4; 

    myPlayer1 = new myPlayer(); 

    System.out.println(myPlayer1); 

    myPlayer2 = new myPlayer("SteveO", "Male", "demon", 99, "live", null); 

    System.out.println(myPlayer2); 

    myPlayer3 = new myPlayer("Gandolf", "Female", "demon", 93, "live", null); 

    System.out.println(myPlayer3); 

    myPlayer4 = new myPlayer("Roger", "Female", "demon", 69, "inactive", null); 

    System.out.println(myPlayer4); 




} 

}

+0

가 null 표시 테스터에 myPlayer2을하려는 시도, 나는 어떻게 든 NULL 대신 생성 한 파일을 참조 할. 희망을 조금 지워줍니다. –

답변

1

이 테스트 클래스 파일

 File file = new File("folder/folder/folder/file.gif"); 
     //absolute path 
     file.getAbsolutePath(); 
     //path 
     file.getPath(); 

사용에서 간단한 방법을 사용하고 myPlayer2 생성자에서 객체를 넣을 수 있습니다. 당신이 변수

스프라이트에,

사용

sprite.getPath을()() 메소드를 toString 또는 sprite.getAbsolutePath에서

();

문자열 형식의 파일 표시 경로.

는 읽기 바이트 스트림을 사용하려는 경우, 난 그냥 그나마이

InputStream in = new FileInputStream(new File("folder/folder/folder/file.gif")); 
+0

클래스의 toString 부분에 file.getPath()를 넣습니다. myPlayer2 아래의 테스터에 똑같은 것을 넣으면 이클립스의 String으로 바꿔달라고한다. 다음과 같이 보입니다. myPlayer2 = new myPlayer ("SteveO", "Male", "demon", 99, "live", sprite.getPath()); –

+0

예, sprite.getPath()를 myPlayer에 넣으면 실제로 File이 아니라 String을 넣습니다. File을 생성자에서 사용하려면 File을 입력하고 toString 메서드에서 sprite.getPath()를 사용합니다. constructor에서 String을 사용하려면 constractor 인수를 변경하십시오. –