2017-07-01 2 views
0

Je dois créer un bouton qui, lorsque j'appuie dessus, génère une couleur aléatoire que je peux utiliser pour dessiner. J'ai recherché d'autres générateurs de couleurs aléatoires mais je ne sais pas comment l'implémenter. Voici mon code jusqu'à présent.Implémentation du bouton de couleur aléatoire dans mon code

from processing import * 


tool = "paintbrush" 
tool = "shapechanger" 
red_color = 0 
green_color = 0 
blue_color = 0 

def setup(): 
    size(400,400) 
    draw_red_button() 


def draw_red_button(): 
    set_red() 
    fill(red_color, green_color, blue_color) 
    rect(0, 380, 20, 20) 

def red_button_pressed(): 
    if mouse.pressed and (mouse.x>0 and 
         mouse.x<20 and 
         mouse.y>380 and 
         mouse.y<400): 
     return True 
    else: 
     return False 

def draw(): 
    if red_button_pressed(): 
     set_red() 
    else: 
     fill(red_color, green_color, blue_color) 
     paint() 
     stroke(red_color, green_color, blue_color) 

def paint(): 
    if mouse.pressed: 
    ellipse(mouse.x, mouse.y, 20,20) 



def set_red(): 
    global red_color 
    global green_color 
    global blue_color 
    red_color = 255 
    green_color = 0 
    blue_color = 0 






run() 
+1

S'il vous plaît poster le MINIMAL exemple nécessaire si vous souhaitez obtenir de l'aide. Est-ce que votre problème change si vous avez seulement un bouton de couleur au lieu d'une douzaine? Si non, pourquoi nous faites-vous lire une douzaine de définitions de fonctions presque identiques? – DyZ

+0

Je viens de le rendre plus petit –

Répondre

0

Télécharger l'environnement de traitement actuel, voici la solution que j'ai trouvée. (Votre code laisse entrevoir une autre version de ce logiciel afin que vous devrez peut-être ajuster en conséquence.)

from processing import * 

red_color, green_color, blue_color = 0, 0, 0 

# Programmer defined functions 

def draw_random_button(): 
    fill(255, 255, 255) 
    rect(0, 380, 20, 20) 

def overButton(): 
    return 0 < mouseX < 20 and 380 < mouseY < 400 

def paint(): 
    if mousePressed: 
     ellipse(mouseX, mouseY, 20, 20) 

def set_random_color(): 
    global red_color 
    global green_color 
    global blue_color 

    red_color = random(256) 
    green_color = random(256) 
    blue_color = random(256) 

    fill(red_color, green_color, blue_color) 

# System defined functions 

def setup(): 
    size(400, 400) 
    draw_random_button() 
    set_random_color() 

def mousePressed(): 
    if overButton(): 
     set_random_color() 

def draw(): 
    if not overButton(): 
     paint() 
     stroke(red_color, green_color, blue_color) 

Une chose est que la confusion mousePressed est une variable que vous pouvez tester et une fonction, vous pouvez définir.

enter image description here