2017-10-09 3 views
1
float speed = 1; 
void setup() { 
size(400, 300); 
} 

void draw() { 
background(255); 
move(); 
display(); 
} 

void move() { 
x = x + speed; 
if (x > 350) { 
speed = 0; 
} 
} 

void display(x,y) { 
fill(#FF2121); 
translate(x,y); 
ellipse(0, 0, 60, 60); 
rect(-10, 15, 20, 100); 
} 

jeton inattendu: x sur "Void affichage (x, y)" Fondamentalement, ce programme déplace l'ellipse et rect de l'autre côté de la fenêtre. Est-ce que c'est la bonne façon de le faire? ou y a-t-il un autre moyen facile?erreur de traitement avec ce code

Exemple 0 = ellipse [] = rect

mouvement de l'autre côté de la fenêtre (vitesse 1) et quand il a atteint le bord, à la fois les arrêter.

Répondre

2

Les paramètres ont besoin de types, tout comme les variables.

void display(float x, float y) { 

Notez également que depuis votre fonction display() prend 2 paramètres, il est illégal d'appeler sans aucun paramètre, ce qui est ce que vous faites dans votre fonction draw(). Notez également que vous n'avez jamais défini la variable x, donc c'est une autre erreur.

Veuillez prendre l'habitude de working in smaller chunks au lieu d'essayer d'écrire tout votre programme en une seule fois. Vous avez quelques erreurs ici, et il sera difficile d'en réparer une sans réparer les autres. Je recommande de recommencer avec quelque chose de plus simple, et d'avancer seulement quand vous avez quelque chose qui fonctionne.

+0

Je l'ai fait avant de poster ici mais sur la fonction draw, "display()" montre une erreur. –

+0

@DipakMukesh Vous 'affichez (float x, float y)' fonction prend deux paramètres. Appeler 'display()' sans aucun paramètre est une erreur. –

+0

Merci triés, si vous pouvez donner un conseil lorsque les blocs touchent le bord, comment puis-je le renvoyer à la position de départ? –