Processing 处理中的交通灯序列

Processing 处理中的交通灯序列,processing,Processing,我试图得到我得到的代码,并添加另一个红绿灯和汽车,但从右到左,而不是从下到上。只有当灯为琥珀色或绿色时,汽车才会移动,当灯为红色时,汽车才会停止。我尝试过复制代码和更改值的名称,但它就是不起作用。我试着给他们取了不同的名字,但它甚至不会显示我试图为另一辆车添加的其他图像。有人能告诉我/告诉我如何添加另一个红绿灯和汽车,但它们在不同的时间移动吗 交通灯1=新交通灯(100,40); int onTime=2000; int startTime=millis(); 皮梅杰轿车; 内特卡克斯,卡里;

我试图得到我得到的代码,并添加另一个红绿灯和汽车,但从右到左,而不是从下到上。只有当灯为琥珀色或绿色时,汽车才会移动,当灯为红色时,汽车才会停止。我尝试过复制代码和更改值的名称,但它就是不起作用。我试着给他们取了不同的名字,但它甚至不会显示我试图为另一辆车添加的其他图像。有人能告诉我/告诉我如何添加另一个红绿灯和汽车,但它们在不同的时间移动吗

交通灯1=新交通灯(100,40);
int onTime=2000;
int startTime=millis();
皮梅杰轿车;
内特卡克斯,卡里;
无效设置(){
尺寸(800600);
光1.变色(“红色”);
light1.display();
car=loadImage(“car.png”);
carX=150;
卡里=300;
}
作废提款(){
背景(255);
如果(millis()-startTime>onTime&&light1.lightOn==“红色”){
灯光1.变色(“琥珀色”);
开始时间=毫秒();
}
if(millis()-startTime>onTime&&light1.lightOn==“琥珀色”){
光1.改变颜色(“绿色”);
开始时间=毫秒();
}
if(millis()-startTime>onTime&&light1.lightOn==“绿色”){
光1.变色(“红色”);
开始时间=毫秒();
}
light1.display();
图像(汽车、汽车、汽车);
如果(light1.lightOn==“绿色”){
carY-=2;
}
{
}
如果(light1.lightOn==“红色”){
carY-=0;
}
{
}
如果(light1.lightOn==“琥珀色”){
carY-=1;
}
{
}

如果(carY您发布的代码只包含一个car,这使得这个问题很难回答。堆栈溢出实际上不是为一般的“我该怎么做”类型的问题而设计的。它更适合于特定的“我尝试了X,预期了Y,但得到了Z”类型的问题。也就是说,我将尝试在一般意义上回答:

这里有一个简短的答案:您需要为第二辆车创建一个状态,然后按照处理第一辆车状态的方式处理该状态。如果将该状态封装到一个类中,然后使用该类的两个实例,这可能会更容易

让我们从一个简单的例子开始,这个圆垂直移动,按下鼠标时停止:

移动圆垂直圆;
无效设置(){
大小(600600);
垂直圆=新的运动圆(250,250,0,5);
}
void mousePressed(){
VerticalCycle.moving=!VerticalCycle.moving;
}
作废提款(){
背景(0);
垂直圆形台阶();
}
阶级运动圈{
浮动x;
浮动y;
浮动速度;
浮动速度;
布尔移动=真;
公共移动圈(浮动x、浮动y、浮动x速度、浮动y速度){
这个.x=x;
这个。y=y;
this.xSpeed=xSpeed;
this.ySpeed=ySpeed;
}
无效步骤(){
如果(移动){
x+=x速度;
y+=y速度;
如果(x>宽度){
x=0;
}
如果(y>高度){
y=0;
}
}
椭圆(x,y,25,25);
}
}
这个程序创建了一个沿屏幕向下移动的圆圈,当你单击鼠标时停止和启动。请注意,我已经在
MovingCircle
类中封装了我需要的所有信息,所以现在如果我想添加另一个,我只需创建该类的另一个实例,并以我想要的方式与它交互

下面是我如何添加一个水平移动的圆:

移动圆垂直圆;
移动圆水平圆;
无效设置(){
大小(600600);
垂直圆=新的运动圆(250,250,0,5);
水平圆=新的移动圆(250,250,5,0);
}
void mousePressed(){
VerticalCycle.moving=!VerticalCycle.moving;
}
按下void键(){
horizontalCircle.moving=!horizontalCircle.moving;
}
作废提款(){
背景(0);
垂直圆形台阶();
水平圆;
}
这只是一个示例,但在代码中的原则是相同的:您需要将状态封装到一个类中,然后您可以使用该类的两个实例来拥有两辆移动的汽车

此外,您不应使用
==
来比较
字符串
值!请改用
.equals()
函数

if(lightcolor.equals(“红色”)){

两件事:您需要描述您的实际问题(如发生了什么问题),以及
light1.lightOn==“red”
。请问一个具体的问题。类似于我尝试使用库Z实现X,但在stacktrace s中得到异常E适用于StackOverflow。