如何使椭圆在处理时上下移动

时间:2016-07-09 08:54:12

标签: processing

我想让椭圆向上和向下移动 那么,你能告诉我如何使椭圆上下移动

2 个答案:

答案 0 :(得分:1)

第1步:将场景的状态存储在某些变量中。对您而言,这可能只是circleY变量。

float circleY = 50;

第2步:使用该变量绘制场景。

ellipse(50, circleY, 10, 10);

第3步:随着时间的推移修改该变量以更改场景。

circleY++;

第4步:添加检查以确保您的变量不在范围之外。

if(circleY > height){
  circleY = 0;
}

总而言之,它看起来像这样:

float circleY = 50;

void draw() {
  background(0);
  ellipse(50, circleY, 10, 10); 
  circleY++;
  if (circleY > height) {
    circleY = 0;
  }
}

falling circle

当然,这只是一个例子。您必须添加额外的逻辑来切换方向,而不是传送回屏幕顶部。您可以使用在圆圈到达屏幕顶部或底部时切换的directionY变量。

但基本原理是相同的:使用变量存储状态,随时间更改这些变量,并使用这些变量绘制场景。

如果您遇到困难,我建议您尝试一些并在新问题中发布MCVE。祝你好运。

答案 1 :(得分:0)

尝试使用sin或余弦函数来上下摆动圆圈!

#include <iostream>
#include <math.h>

using namespace std;

void kub(int *niz[], int n)
{
    int i=0;

    while(i<n)
    {
        *niz[i]=pow(*niz[i],3);
        i++;
    }
}

void unesi(int* niz[],int n)
{
    int i=0;

    while(i<n)
    {       
        cin>> *niz[i];
        i++;
    }
}

void stampaj(int* niz[],int n)
{
    int i=0;

    while(i<n)
    {
        if ((*niz[i]%2)==0 && (*niz[i]%2)!=0)
            cout<<*niz[i]<<endl;

        i++;
    }
}

int main()
{
    int n;
    cin>>n;
    int niz[n];

    unesi(niz,n);  /* <<= here */
    kub(niz,n);
    stampaj(niz,n);
    return 0;
}