Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio LibGDX游戏问题_Java_Android_Android Studio_Libgdx - Fatal编程技术网

Java Android Studio LibGDX游戏问题

Java Android Studio LibGDX游戏问题,java,android,android-studio,libgdx,Java,Android,Android Studio,Libgdx,我快写完游戏了,但是,当我运行游戏时,Android Studio抱怨出现以下错误:Error:(103,8)Gradle:Error:expressionError的非法启动错误:(103,15)Gradle:Error:expressionError的非法启动错误:(103,26)Gradle:Error:';'预期错误:(103,43)渐变:错误:';'应为 @Override public void beginContact(Contact contact) {

我快写完游戏了,但是,当我运行游戏时,Android Studio抱怨出现以下错误:
Error:(103,8)Gradle:Error:expressionError的非法启动错误:(103,15)Gradle:Error:expressionError的非法启动错误:(103,26)Gradle:Error:';'预期错误:(103,43)渐变:错误:';'应为

    @Override
    public void beginContact(Contact contact) {
        if (areCollided(contact, "player", "floor")) {
            player.setJumping(false);
            if (Gdx.input.isTouched()) {
                player.setMustJump(true);
            }
        }

        if (areCollided(contact, "player", "obstacle")) {
            player.setAlive(false);
            System.out.println("GAME OVER");

        }

        if (areCollided(contact, "player", "obstacle2")) {
            player.setAlive(false);
            System.out.println("GAME OVER");
        }
    }

    @Override
    public void endContact(Contact contact) {

    }

    @Override
    public void preSolve(Contact contact, Manifold oldManifold) {

    }

    @Override
    public void postSolve(Contact contact, ContactImpulse impulse) {

    }
});
下面是我的GameScreen类的代码:

package com.circlecrashavoider;



        import com.badlogic.gdx.Gdx;
        import com.badlogic.gdx.graphics.GL20;
        import com.badlogic.gdx.graphics.Texture;
        import com.badlogic.gdx.math.MathUtils;
        import com.badlogic.gdx.math.Vector2;
        import com.badlogic.gdx.physics.box2d.Contact;
        import com.badlogic.gdx.physics.box2d.ContactImpulse;
        import com.badlogic.gdx.physics.box2d.ContactListener;
        import com.badlogic.gdx.physics.box2d.Manifold;
        import com.badlogic.gdx.physics.box2d.World;
        import com.badlogic.gdx.scenes.scene2d.Stage;
        import com.badlogic.gdx.utils.viewport.FitViewport;
        import com.circlecrashavoider.entities.FloorEntity;
        import com.circlecrashavoider.entities.ObstacleEntity;
        import com.circlecrashavoider.entities.ObstacleEntity2;
        import com.circlecrashavoider.entities.PlayerEntity;
        import com.circlecrashavoider.scene2d.EntityFactory;

        import java.util.ArrayList;
        import java.util.List;
        import java.util.Objects;
        import java.util.Random;

/**
 * Created by Felipe on 2/22/2016.
 */

public class GameScreen extends BaseScreen {

    private Stage stage;

    private World world;

    private PlayerEntity player;

    private List<FloorEntity> floorList = new ArrayList<FloorEntity>();

    private List<ObstacleEntity> obstacleList = new ArrayList<ObstacleEntity>();

    private List<ObstacleEntity2> obstacle2List = new ArrayList<ObstacleEntity2>();

    public GameScreen(MainGame game) {
        super(game);
        stage = new Stage(new FitViewport(1024, 620));
        world = new World(new Vector2(0, -10), true);


        world.setContactListener(new ContactListener() {

            private boolean areCollided(Contact contact, Object userA, Object userB) {
                return (contact.getFixtureA().getUserData().equals(userA) && contact.getFixtureB().getUserData().equals(userB)) ||
                        (contact.getFixtureA().getUserData().equals(userB) && contact.getFixtureB().getUserData().equals(userA));
            }

            @Override
            public void beginContact(Contact contact) {
                if (areCollided(contact, "player", "floor")) {
                    player.setJumping(false);
                    if (Gdx.input.isTouched()) {
                        player.setMustJump(true);
                    }
                }

                if (areCollided(contact, "player", "obstacle")) {
                    player.setAlive(false);
                    System.out.println("GAME OVER");

                }

                if (areCollided(contact, "player", "obstacle2")) {
                    player.setAlive(false);
                    System.out.println("GAME OVER");
                }
            }

            @Override
            public void endContact(Contact contact) {

            }

            @Override
            public void preSolve(Contact contact, Manifold oldManifold) {

            }

            @Override
            public void postSolve(Contact contact, ContactImpulse impulse) {

            }
        });
    }

    private float spawnTime = 4f;
    private float timer = 0;

    @Override
    public void show() {


        public void update( float deltaTime) {
            timer += deltaTime;


            if (timer >= spawnTime) {
                this.spawnEntity();

                spawnTime = MathUtils.random(2f, 4f);
                timer = 0;

            }
        }
    }
        private void spawnEntity(){

            Texture floorTexture = game.getManager().get("floor.png");
            Texture overfloorTexture = game.getManager().get("overfloor.png");
            Texture overfloor2Texture = game.getManager().get("overfloor2.png");
            Texture obstacleTexture = game.getManager().get("obstacle.png");
            Texture obstacle2Texture = game.getManager().get("obstacle2.png");
            //Spawn your object
            floorList.add(new FloorEntity(world, floorTexture, overfloorTexture,overfloor2Texture, 0, 1000, 1));
            floorList.add(new FloorEntity(world, floorTexture, overfloorTexture,overfloor2Texture ,8, 10 ,5));
            floorList.add(new FloorEntity(world, floorTexture, overfloorTexture,overfloor2Texture ,10, 10 ,8));
            floorList.add(new FloorEntity(world, floorTexture, overfloorTexture,overfloor2Texture ,34 , 3 ,5));
            floorList.add(new FloorEntity(world, floorTexture, overfloorTexture,overfloor2Texture ,19 , 8 ,4));
            floorList.add(new FloorEntity(world, floorTexture, overfloorTexture,overfloor2Texture ,24 , 8 ,1.5f));
            floorList.add(new FloorEntity(world, floorTexture, overfloorTexture,overfloor2Texture ,27 , 5 , 2));
            obstacleList.add(new ObstacleEntity(world, obstacleTexture, 6, 1));

            stage.addActor(player);
            for (FloorEntity floor: floorList) {
                stage.addActor(floor);
            }
            for (ObstacleEntity obstacle : obstacleList) {
                stage.addActor(obstacle);
            }
        }

















    @Override
    public void render(float delta) {
        Gdx.gl20.glClearColor(0.5f, 0.6f, 1, 3f);
        Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);



        stage.act();
        world.step(delta, 6, 2);
        stage.draw();
    }



    @Override
    public void dispose() {
        stage.dispose();
        world.dispose();
    }
}
    @Override
    public void beginContact(Contact contact) {
        if (areCollided(contact, "player", "floor")) {
            player.setJumping(false);
            if (Gdx.input.isTouched()) {
                player.setMustJump(true);
            }
        }

        if (areCollided(contact, "player", "obstacle")) {
            player.setAlive(false);
            System.out.println("GAME OVER");

        }

        if (areCollided(contact, "player", "obstacle2")) {
            player.setAlive(false);
            System.out.println("GAME OVER");
        }
    }

    @Override
    public void endContact(Contact contact) {

    }

    @Override
    public void preSolve(Contact contact, Manifold oldManifold) {

    }

    @Override
    public void postSolve(Contact contact, ContactImpulse impulse) {

    }
});

有人能帮我纠正这些错误吗?我将不胜感激

不允许在其他方法或构造函数中有方法。将代码中看起来像这样的部分移到构造函数的上方或下方

    @Override
    public void beginContact(Contact contact) {
        if (areCollided(contact, "player", "floor")) {
            player.setJumping(false);
            if (Gdx.input.isTouched()) {
                player.setMustJump(true);
            }
        }

        if (areCollided(contact, "player", "obstacle")) {
            player.setAlive(false);
            System.out.println("GAME OVER");

        }

        if (areCollided(contact, "player", "obstacle2")) {
            player.setAlive(false);
            System.out.println("GAME OVER");
        }
    }

    @Override
    public void endContact(Contact contact) {

    }

    @Override
    public void preSolve(Contact contact, Manifold oldManifold) {

    }

    @Override
    public void postSolve(Contact contact, ContactImpulse impulse) {

    }
});

在函数中声明函数。这不是有效的java,我不知道您希望它做什么。另外,阅读您的错误,它会告诉您问题出在哪一行。