2017-10-15 3 views
1

javafx를 사용하여 게임을하고 있습니다. 이전에 awt에서 일부 게임을 코딩 했으므로 게임 작동 방식에 대한 기본적인 감각을 가지고 있습니다. (나는 bufferedimages를 사용했다.) 그러나, javafx API의 새로운 모든 것들을 가지고, 나의 오래된 게임 아키텍쳐가 여전히 javafx에 적용되는지는 의문이다. 이것은 내 게임의 현재 논리입니다 :javafx 게임에서 엔티티를 올바르게 렌더링하는 방법은 무엇입니까?

enter image description here

이 내 렌더링이 작동하는 방법이다 : 그러나

for(Entity e : entities) 
{ 
    gc.drawImage(e.getX(),e.getY(),e.getImage()); 
} 

다음은 기본적으로 다음과 같습니다 방법 렌더링 내부

List<Entity> entities= new ArrayList<Entity>; 
GraphicsContext gc; ///imagine that I created a new GraphicsContext object 

, 이후 javafx 너무 많은 새로운 기능을 가지고,이 방법은 쓸모가 없거나 비효율적인지 궁금합니다. 이러한 엔티티를 이동해야합니까? 아니면 이미지 자체를 이동해야합니까? 나는 우주 총격 사건 게임을하고 있습니다. 그래서 Interpolate()와 Transition이 게임을 향상시킬 수 있을까요?

사용할 수있는 특정 javafx 게임 자습서가 많지 않으므로 여기에서 도움을 받으십시오. 감사합니다!

+0

찾는 Timeline' '에서 [예] (https://stackoverflow.com/q/39185306위한/230513). – trashgod

+0

@trashgod 현재 루프에 AnimationTimer를 사용하고 있습니다. Entity 클래스를 ImageView의 하위 클래스로 만드는 것에 대해 어떻게 생각합니까? – Ptolemorphism

+0

이미지를 그리는 데 ImageView처럼 많은 메모리가 필요하지 않기 때문에 나쁜 생각 일 수 있습니다. ImageView는 불필요한 옵션을 제공하며 게임 개발에 사용하면 안됩니다! –

답변

2

내가하는 일은 제 생각에 가장 좋은 방법입니다. 비슷한 것을하고 다음과 같은 엔티티를 사용했습니다 :package jumpNRun.gameObjects;

import java.util.List; 
import javafx.scene.image.Image; 
import javax.xml.bind.annotation.XmlRootElement; 
import jumpNRun.gameObjects.entitys.Solid; 


@XmlRootElement 
public class Entity { 

    protected Image entityImage; 

    protected double gravity = 0; 

    protected int height = 0, width = 0; 

    protected int x = 0, y = 0; 

    protected int id = 0; 
    /** 
    * Class speciefed informations 
    */ 
    protected String extraInfo; 
    protected boolean killed = false; 

    public String getExtraInfo() { 
     return extraInfo; 
    } 

    public void setExtraInfo(String extraInfo) { 
     this.extraInfo = extraInfo; 
    } 

은 ... 등 의 도면은 다음과 같이 행해질 수있다 :

gc.drawImage(backround, 0, 0); 
    for (Entity e : entitys) { 
     gc.drawImage(e.getEntityImage(), e.getX(), e.getY()); 
    } 
+0

내가 원한다면 내가 만든 게임 프로젝트를 줄 수있다. –

관련 문제