let vehicle; let path; function setup() { createCanvas(600, 600); vehicle = new Vehicle(50, 0); function draw() { background(220); path.display(); vehicle.follow(path); vehicle.update(); vehicle.display(); } var redLight = 'red' var yellowLight = 'white' var greenLight = 'white' var count = 0; function draw() { fill("black") rect(140, 70, 110, 250) fill(redLight) ellipse(195, 120, 60, 60) fill("white") text("RED", 182, 124) fill(yellowLight) ellipse(195, 200, 60, 60) fill("white") text("YELLOW", 171, 205) fill(greenLight) ellipse(195, 280, 60, 60) fill("white") text("GREEN", 175, 285) }Aquí tengo un semáforo y un camino y quiero que aparezcan juntos, pero solo puedo hacer que aparezca uno de ellos, así que si el semáforo está allí, no mostrará nada del camino. ¿Cómo puedo cambiar esto para que ambos aparezcan juntos en el mismo lienzo?
Estás declarando dos funciones draw() separadas, por lo que la segunda que declaras reemplaza a la primera. Debe combinar su lógica de dibujo en una sola función:
let vehicle; let path; function setup() { createCanvas(600, 600); vehicle = new Vehicle(50, 0); // initialize path ?! } function draw() { background(220); path.display(); vehicle.follow(path); vehicle.update(); vehicle.display(); drawTrafficLight(); } var redLight = 'red' var yellowLight = 'white' var greenLight = 'white' var count = 0; function drawTrafficLight() { fill("black") rect(140, 70, 110, 250) fill(redLight) ellipse(195, 120, 60, 60) fill("white") text("RED", 182, 124) fill(yellowLight) ellipse(195, 200, 60, 60) fill("white") text("YELLOW", 171, 205) fill(greenLight) ellipse(195, 280, 60, 60) fill("white") text("GREEN", 175, 285) }