首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >子弹打靶算法-- Java

子弹打靶算法-- Java
EN

Stack Overflow用户
提问于 2017-09-20 02:47:14
回答 1查看 757关注 0票数 0

我在做一个你可以射击的游戏。我的算法有问题,子弹正指向鼠标的方向,但没有朝它移动。你能给我提供一个更好的算法,并告诉我为什么我的算法不起作用吗?所有这些代码都是用Java编写的。BTW MImage类是我创建的一个类,所以不要被它搞糊涂了。

代码语言:javascript
复制
private double angle;
    public Bullet(int xx, int yy, int x, int y,Gun gun, int id, double angle) {
        this.x = xx;
        this.y = yy;
        tx = x;
        ty = y;
        xorg = xx;
        yorg = yy;
        this.gun = gun;
        this.id = id;
        this.angle = angle;


        try {
            image = new MImage(ImageIO.read(new File("PATH")));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        image.rotateBy((int)Math.toDegrees(angle));

        stopwatch.start();
    }



    private int speed = 3,time = 0;;
        public void update() {


            double speedy, speedx;
            speedy = speed * Math.sin(Math.toRadians(angle));
            speedx = speed * Math.cos(Math.toRadians(angle));

             y = (int) ((-5) * time * time + speedy * time + yorg);
             x = (int) (speedx * time + xorg);
             time++;

             System.out.println(y + " --- " + x);
            if(stopwatch.getElapsedTime() > 500) {
                terminate(id);
            }
        }

`

下面是我创建这个类的一个新实例的时候

代码语言:javascript
复制
public boolean shoot(int x, int y, int tx, int ty) {
    boolean worked = false;
    if(amo >= 0) {
        bullets.add(new Bullet(x,y,tx,ty,this,bullets.size(),Math.atan2(ty-y,tx-x)));
        amo --;
        worked = true;
    }
    return worked;
}

谢谢你,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-23 00:07:34

我找到了我的问题的答案。这个算法一点都不难,但它并不完美,但仍然有效。这是一个简单的三角函数。如果让angle = Math.atan2(dy,dx),然后让velocityX = speed*Math.cos(angle),让velocityY = speed*Math.sin(angle),然后在更新函数中将以下代码放入x += velocityX y+= velocityY

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46307755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档