processing - 我需要使用处理使这些给定的常量和变量一致地从一端滚动到另一端
问题描述
final int X_START = 1;
final int Y_START =250 ;
final int X_END =width ;
final int Y_END =250 ;
final int SPEED_FACTOR = 5;
int xCenter= ;
int yCenter= ;
void setup(){
size (500, 500) ;
}
void draw(){
background(0);
ellipse(xCenter, yCenter, 50, 50);
}
球必须从 xstart 移动到 xend 并返回并需要帮助计算
解决方案
首先,关于您发布的代码的一些注释(评论):
final int X_START = 1;
final int Y_START =250 ;
// you should either set this to be 500 or have it as non-final, but initialized in setup()
// because width will be zero before size() gets called
final int X_END =width ;
final int Y_END =250 ;
final int SPEED_FACTOR = 5;
// values missing here
int xCenter= ;
int yCenter= ;
void setup(){
size (500, 500) ;
}
void draw(){
background(0);
ellipse(xCenter, yCenter, 50, 50);
}
也许你的意思是这样的?
final int X_START = 1;
final int Y_START =250 ;
final int X_END =250 ;
final int Y_END =250 ;
final int SPEED_FACTOR = 5;
int xCenter = 250;
int yCenter = 250;
void setup(){
size (500, 500) ;
}
void draw(){
background(0);
ellipse(xCenter, yCenter, 50, 50);
}
仅此片段并不能说明您解决问题的尝试。有多种方法可以实现相同的目标,“滚球”听起来有点模棱两可。如果您的球是您绘制的白色椭圆,将其从一个位置移动到另一个位置而不旋转(滚动),则在视觉上将无法区分(例如,如果您的球以 90 度“滚动”,则无法从视觉上分辨出与球的区别“滚动”在 0 度)。
假设您想以每帧 5px 的速度将球从X_START
、Y_START
到移动X_END
,Y_END
您需要做的就是在每帧增加xCenter
和yCenter
的值SPEED_FACTOR
。要增加一个数量,您只需将该数量添加到现有值:
xCenter = xCenter + SPEED_FACTOR;
上面还有一个速记。请做同样的事情yCenter
并尝试一下。请使用您对此答案的更新draw()
实现写评论,最好使用速记版本。
推荐阅读
- file - 使用 Rest API 将数据附加到 Azure Datalake Storage Gen2 中的现有文件
- javascript - 来自 Promise Async 的带有 puppeteer 错误的 NodeJS
- javascript - JavaScript 和 HTML 中带有滑动动画的模态框
- javascript - 如何在反应中通过按钮打开新页面?
- c++ - 全局命名空间前缀的规则和实践?
- python - 如何更正不完整的多边形几何并在 MySQL 中插入?
- asp.net-mvc - 从 DB 获取 ApplicationUser 时如何包含相关实体?
- hyperledger-fabric - 无法运行 byfn.sh up
- angular - 角度多项目轮播的问题(flickity)
- php - WooCommerce - 将产品文档从产品信息移动到标签容器