首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让我的图像以随机的方向移动?

如何让我的图像以随机的方向移动?
EN

Stack Overflow用户
提问于 2011-10-19 12:57:43
回答 2查看 2.1K关注 0票数 4

我有一个逆时针方向旋转的图像。现在,我希望它在碰壁的过程中或任何时候以随机的方向移动。问题是我不能做这件事,请帮我解决这件事。

这是我的代码:

代码语言:javascript
复制
private double x;
private double y;
private double speed;

public void move(long dt)
{
    double dt_s = dt / 1e9;
    double dx = speed * dt_s;
    double dy = speed * dt_s;

    final double right_border = 100;
    final double up_border = 100;
    final double down_border = 0.0;
    final double left_border = 0.0;


    x += dx;

    if (x >= right_border)
    {
        x = right_border;
      if (y >= down_border)
       {               
    y += dy;
       }

    }
    if (y > up_border)
    {
        y = up_border;
        if (x >= left_border)
        {
            speed *= -1;
        }

    }
    if (x <= left_border)
    {
        x = left_border;
        if (y <= up_border)
        {
            y += dy;
        }

    }
    if (y < down_border)
    {
        y = down_border;
        if (x <= right_border)
        {
            speed *= -1;
        }

    }

 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-19 13:56:16

首先,你必须解决你的类没有方向的问题-你有速度,但你的方向固定在东北45度(增量x和y相同)。

将方向添加到类中,如下所示:

代码语言:javascript
复制
...
private double speed;
private double angle; // in radians - makes math easier

public void move(long dt) {
    ...
    double dx = speed * dt_s * Math.sin(angle);
    double dy = speed * dt_s * Math.cos(angle);
    ...

现在向一个随机方向前进:

代码语言:javascript
复制
myObject.setAngle(Math.PI * 2 * Math.random()); // Math.PI * 2 = 360 degrees

如果撞到一面墙,你必须限制你的角度,使其远离你要撞到的墙。我将把它留给您,但它将采用以下形式:

代码语言:javascript
复制
myObject.setAngle(minAngle + ((maxAngle - minAngle) * Math.random()));
票数 2
EN

Stack Overflow用户

发布于 2011-10-19 13:25:56

这是一种可能的解决方案。

在其中一个边界(而不是图像刚刚命中的边界)上生成一个随机点(x,y),并使图像朝向该点移动。您所要做的就是,找到它刚刚命中的点P1(x1,y1)和刚刚生成的随机点P2(x2,y2)之间的斜率。使用斜率,你可以找到直线的方程,它必须移动。你完蛋了!!

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

https://stackoverflow.com/questions/7816702

复制
相关文章

相似问题

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