外壳游戏。如何使对象运动,特别是在某些曲线中但以随机顺序运动?

时间:2018-12-27 17:22:34

标签: java processing

我正在将这种游戏称为Shell游戏。

要让我的杯子以随机顺序但以一定的曲线运动切换位置,我已经被卡住了一段时间。我应该以某种方式使用贝塞尔曲线吗?

如何在代码中以及在哪里隐藏球?

非常感谢您的帮助:-)

cup cupLeft;       
cup cupMiddle;   
cup cupRight;  
coin coinGold;   

void setup() {   
    size(1250,750);    
    background(255);   

    int x = width/2;   
    int y = height/2;    
    cupLeft = new cup(x,y);    

    int x2 = 1050;    
    int y2 = 300;    
    cupMiddle = new cup(x2,y2);    

    int x3 = 1500;    
    int y3 = 375;    
    cupRight = new cup(x3,y3);    

    int x5 = width/2;    
    int y5 = height/2;    
    coinGold = new coin(x5,y5);    
}    

void draw() {    
    display_bW();      
    cupLeft.display();    
    cupMiddle.display();    
    cupRight.display();    

    coinGold.display();    
}    

display_bW()的代码;

PImage bW;        
bW = loadImage("brickWall.jpg");    
bW.resize(1250,750);    
imageMode(CENTER);    
image( bW, width/2, height/2);    
bW.resize(800,800);    
//The TITLE    
fill(255,215,0);    
textAlign(CENTER);    
textSize(100);    
text("The shell game", width/2, 150);    
// Instruction    
fill(255,215,0);     
textAlign(CENTER);    
textSize(55);    
text("Find the coin. Press space to start the game", width/2, 700);    

杯具类:

class cup {    
    int x;    
    int y;    
    int dir;    

    cup(int x1, int y1) {     
        x=x1;    
        y=y1;    
        dir = 1;    
    }    

    void move(int speed) {     
        //My thought was to write something in here that could determine the speed and direction of the cups.    

    }    

    void display() {   

        fill(255,0,0);    
        quad(x-550,y+100,x-330,y+100,x-380,y-100,x-500,y-100);     
        ellipse(x-440,y-100,120,50);     
        ellipse(x-440,y+100, 220, 50);    
     }    
}  

如果您还有其他建议以更好或更有效的方式做某事,请告诉我。

1 个答案:

答案 0 :(得分:1)

很难回答一般的“我该怎么做”类型的问题。我们可以为您提供的最佳建议是break your problem down into smaller steps,然后一次执行一个步骤。

例如,您可以创建一个显示两个矩形切换位置的简单程序吗?您可以研究animation。从简单的东西开始,首先没有曲线。 lerp()函数在这里可能会派上用场。在尝试实现曲线之前先使它工作。

对于弯曲,curvePoint()bezierPoint()函数可能派上用场。所有这些功能都可以在the reference中找到。

构建程序,以便您可以硬编码两个索引并显示它们切换位置的动画。

最后,根据您到目前为止所拥有的内容来随机生成索引。

如果您受困于这些步骤之一,则可以创建一个包含更具体问题以及MCVE的新帖子。祝你好运!