실행되지 않습니다 : AbstractEntity
Entity
(Entity
를 확장하는)인스턴스 내가 패키지와 2 개 클래스를 재정의 방법
나는 public void method called move()
이 Player
(AbstractEntity
를 구현한다). AbstracEntity
, @Overridden
, 공백 방법으로는 Entity
, 또 에있는 @Overridden
으로 선언되어 있습니다. 그러나, 나는 내 메인 루프에서이 코드를 호출 할 때 : 이동 방법은 Entity 클래스에서 구현
for(Entity entity:allEntities){
entity.move();
renderer.processEntity(entity);
}
: @Override 공공 무효 이동() { }
그리고 플레이어의 클래스 로 :
@Override
public void move(){
checkInputs();
rotY += currentTurnSpeed * DisplayManager.getFrameTimeSeconds();
float distance = currentSpeed * DisplayManager.getFrameTimeSeconds();
float dx = (float) (distance * Math.sin(Math.toRadians(rotY)));
float dz = (float) (distance * Math.cos(Math.toRadians(rotY)));
upwardsSpeed+= Gravity * DisplayManager.getFrameTimeSeconds();
float dy = upwardsSpeed * DisplayManager.getFrameTimeSeconds();
if(super.getPosition().y<TerrainHeight){
upwardsSpeed = 0;
dy = TerrainHeight - super.getPosition().y;
}
super.increasePosition(dx, dy, dz);
super.setRotation(new Vector4f(0f,(float) (Math.sin(Math.toRadians(-rotY/2))),0f,(float) Math.cos(Math.toRadians(-rotY/2))));
System.out.println("here");
}
이 빈 move()
방법보다는 오버라이드 (override) 하나를 수행합니다. 나는 너무 정확하게 이것을 재구성하는 방법을 확신 할 수 없다.
메서드를 호출 할 실제 개체가 Player 클래스이고 Entity가 아닌 것은 확실합니까? –
'Entity' 클래스와'Player' 클래스의 관련 코드를 포함하십시오 (즉, 두 클래스 모두에서'move()'구현). – Eran
두 가지 구현이 모두 추가되었으며, 메서드가 호출 된 엔티티는 엔티티 배열에서 가져 오지만 플레이어 클래스로 추가됩니다. – Peter