2011-11-10 1 views
-2

: http://download.oracle.com/javase/7/docs/api/java/util/Vector.html#addElement(E)java.util.Vector의 <E>로드 블록

나는 내가 소행성과 같은 자바 게임 클래스를 작성해야 내 OOP 클래스에 대한 할당이있다. 나는 x와 y 위치뿐만 아니라 발사와 혜성의 x와 y 속도를 나타내는 벡터를 사용해야한다. 그래서 초기화 될 때, 그들은 다음과 같이 보입니다 : "공개 벡터 샷;" 및 "공개 벡터 혜성;" updateShots() 내부의 for 루프가 호출 될 때 shots.size()가 0이 아닌 문제가 발생합니다. 따라서 shot이 실제로 실행되는 부분에 도달하지 못합니다. 벡터에 요소를 추가하고 추가 할 때마다 요소가 "Shot"유형이어야하며 내 double을 해당 유형으로 변환 할 수 없다고 알려줍니다. 저는 몇 시간 동안 온라인으로 검색을 해왔으며 Double, String, Integer 또는 Object를 Vector 클래스의 바인딩으로 사용하지 않는 것을 찾을 수 없습니다. 내 Shot 클래스와 뭔가 관련이 있다고 가정합니다. 클래스와 그 클래스에 추가해야 할 사항이 있습니다. 나는 내가 가지고있는 이슈에 대해 설명하기 위해 여기에 게시 할 수있는 코드가 무엇인지 잘 모르겠습니다.

다음은 파일 설정 방법입니다. CometsMain.java는 기본 Java 파일이며, SpaceObjects는 3 개의 하위 클래스가있는 전체 클래스입니다. Comet, Ship 및 Shot은 각각 SpaceObject를 확장하는 SpaceObject의 3 개 하위 클래스입니다. Comet은 현재로서는 중요하지 않은 3 개의 서브 클래스를 가지고있다.

초기화 내가 처음에 지정한 것은 CometsMain.java에 있습니다. Ship 클래스에는 "Shot fire()"메서드가있어 새로운 샷을 반환합니다. Shot 클래스는 실제로 move() 메서드를 처리하여 실제로 총알 이동을 제어합니다. 현재 실제 Shot 클래스 내부에서 move() 내부의 모든 벡터 관련 코드가 있지만 Ship.class 내부의 "Shot fire()"메서드에 모두 있어야하는지 확실하지 않습니다.

내가 게시하고 싶은 코드 또는 기타 필요한 정보를 알려주십시오.

+0

tl; dr - 문제가 있음을 나타내는 코드를 게시하십시오. –

+0

귀하의 질문이 너무 길며 분명하지 않습니다. 문제가 벡터에 물건을 추가하는 경우, 오류, 오류를 생성하는 코드 및 오류와 관련된 객체의 정의를 확인해야합니다. – madth3

+0

나는 잘못된 부분이 너무 많아서 벡터에 추가 된 부분이 너무 작아 코드의 작은 부분이 무엇인지 알 수 없었습니다. 나는 그것을 알아 냈다, 고마워! – Hank

답변

1

이 경우 Java Vector 클래스를 사용하면 안됩니다. 귀하의 임무는 자바 콜렉션 프레임 워크 (java.util.Vector가 속한)가 아니라 수학적으로 벡터를 사용하는 것입니다. 자신 만의 벡터 클래스를 정의하거나 (선호), 두 개의 int 배열을 벡터로 사용할 수 있습니다. 클래스의 이름을 Vector로 지정할 수도 있습니다. 컴파일러는 java.util.Vector (또는 java.util. *)를 임포트하지 않는다면 어느 것을 사용할 지 알 것입니다. java.util.Vector를 가져와야하는 경우 베어 이름 Vector 대신 정규화 된 클래스 이름을 사용해야합니다.

+0

선생님께서는 특별히 java.util.Vector 클래스를 사용하라고 말씀하셨습니다. 나는이 Vector 클래스를 사용하기로되어 있고 그것을 알아 냈다. 나는 잘못된 곳에 벡터에 추가하려고하는 코드를 가지고있다. 내가 하위 자바 클래스가 아니라 기본 자바 파일했다. 또한 수업을 호출하는 방법을 알아 냈습니다. 나는 "shots.add (ship.fire());"를 사용했다. 메인 자바에서 "Shot fire();" 메서드는 Ship 클래스에서 "new Shot (....)"을 반환하여 샷을 벡터에 추가합니다. 도움을 주셔서 감사합니다. 원래 게시물의 설명이 어려웠다면 유감스럽게 생각합니다. 그 때까지는 조금 부족했습니다. – Hank