簡體   English   中英

使用隨機生成的數字進行動畫制作

[英]Using randomly generated numbers for animation

我正在嘗試重新創建pong,但遇到了一個我不知道的錯誤。

到目前為止,我已經獲得了大部分的槳和球來顯示和移動我想要的方式,但是我似乎無法使球初始化為沿隨機方向移動。

這是設置球方向的代碼

        if(inGame == true)
    {
        double start = -1;
        double end = 1;

        Random xRand = new Random();
        double xResult = start + (end - start) * xRand.nextDouble();

        Random yRand = new Random();
        double yResult = start + (end - start) * yRand.nextDouble();

        System.out.println("xRand: " + xResult);
        System.out.println("yRand: " + yResult);

        ball.setMove(xResult, yResult);
    }

這是我的setMove方法

    public void setMove(double x, double y){
    dx = x;
    dy = y;
}

這是移動球的實際方法

    public void move(){
    x += dx;
    y += dy;
}

在此方法中連續調用

    public void actionPerformed(ActionEvent e) {
    repaint();
    paddle.move();
    ball.move();
}

按照我當前的代碼,球基本上只會朝三個方向:向上,向左或向左。 我已經包含了打印行,這些行提供了隨機數,但由於它只在三個方向運行,因此似乎可能會四舍五入數字。

由於行進方向的原因,它似乎不能與正數一起使用,而且,當兩個隨機生成的數字均為正數時,它根本不會移動。

任何幫助,將不勝感激,謝謝

我想你的球的xy坐標是int 如果在其中添加一個double ,它將舍入結果。 這就是為什么您的球只能向零或負方向移動。

使用floatdouble存儲坐標。 繪制時,可以將它們四舍五入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM