사과를 화살표로 촬영하는 게임을 만들고 있습니다. Apple의 위치는 사용자 입력의 XY 위치이며 화살표 액터는 코드 actor.moveto를 사용하여 해당 위치로 이동해야합니다. 문제는 화살표가 사용자 입력 방향으로 한 번만 이동한다는 것입니다. moveArray 액션은 stageArrow를 호출 할 때 초당 여러 번 업데이트된다는 것을 알고 있습니다. 업데이트 메소드에서 작동하므로 화살표가 한 번만 움직이는 이유가 궁금합니다.스테이지의 액터가 MoveTo XY 위치를 업데이트하지 않습니다.
appleclass.java 어떤 도움이 높게 평가 될 것이다
public class ArrowClass extends Actor {
MainApp app;
AppleClass appleClass;
public Texture arrowTexture;
public ArrowClass(final MainApp app){
this.app = app;
arrowTexture = new Texture("medievalarrow.png");
this.setSize(arrowWidth, arrowHeight);
this.setTouchable(Touchable.enabled);
this.setBounds(app.screenWidth*0.45f,0,arrowWidth,arrowHeight);
this.setOrigin(0,0);
}
@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
final float delta = Gdx.graphics.getDeltaTime();
this.act(delta);
app.batch.begin();
app.batch.draw(arrowTexture, getX(),getY(),getWidth(),getHeight());
app.batch.end();
}
}
public class AppleClass implements Screen {
Arrow arrow;
private final MainApp app;
public Image ShotImage;
public AppleClass(final MainApp app){
this.app = app;
this.stageApple = new Stage(new StretchViewport(app.screenWidth,app.screenHeight , app.camera));
this.stageArrow =new Stage(new StretchViewport(app.screenWidth,app.screenHeight , app.camera));
arrow = new ArrowClass(app);
}
@Override
public void show() {
InputMultiplexer inputMultiplexer = new InputMultiplexer();
inputMultiplexer.addProcessor(stageApple);
inputMultiplexer.addProcessor(stageArrow);
Gdx.input.setInputProcessor(inputMultiplexer);
arrow();
}
public void arrow(){
arrow.isTouchable();
stageArrow.addActor(arrow);
arrow.addAction((moveTo(Gdx.input.getX(),Gdx.input.getY(),0.3f))); //===> only executes once.
arrow.addListener(new InputListener(){
public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor){
if (Gdx.input.isTouched()){
ShotImage.setVisible(true);
}
}
});}
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
update(delta);
}
public void update(float deltaTime){
stageApple.draw();
stageArrow.draw();
stageApple.act(deltaTime);
stageArrow.act(deltaTime);
}
ArrowClass.java : 여기에 내 코드입니다. 감사.
당신이 여기 내 질문에서 봐 주시기 바랍니다 수 : http://gamedev.stackexchange.com/questions/135748/how-to-
따라서, 클래스는 다음과 같이 단순화 될 수있다 아라 일주하는 사람을 배우로 만들고 배우와 무대에 서기 – JAlmazan