Problem z pracą domową

0

Mam zadanie domowe.

Kod

def setup():
    size(500, 400)
    textSize(70)
    background(0,0,255)
 
def draw():
 
    if ((mouseX > 150) and (mouseX < 200) and
    (mouseY > 150) and (mouseY < 210)):
        fill(255,0,0)
    text("A", width/2-100, height/2)
    if keyPressed == True:
        fill(0,255,0)
    else:
        fill(255)
    text("S", width/2+100, height/2)
 
 
 
    s = createShape()
    s.beginShape()
    s.fill(255,0,0) 
    s.stroke(255,0,0)
    s.vertex(100, 70)
    s.vertex(60, 150)
    s.vertex(100, 220)
    s.vertex(200, 220)
    s.vertex(235, 150)
    s.vertex(200, 70)
    s.vertex(185, 70)
    s.vertex(220, 150)
    s.vertex(190, 205)
    s.vertex(110, 205)
    s.vertex(75, 150)
    s.vertex(115, 70)
    s.endShape(CLOSE) 
    shape(s, 25, 25)
 
 
    s = createShape()
    s.beginShape()
    s.fill(0,255,0)
    s.stroke(0,255,0)
    s.vertex(260, 205)
    s.vertex(260, 220)
    s.vertex(420, 220)
    s.vertex(420, 205)
    s.vertex(410, 185)
    s.vertex(400, 205)
    s.vertex(390, 185)
    s.vertex(380, 205)
    s.vertex(370, 185)
    s.vertex(360, 205)
    s.vertex(350, 185)
    s.vertex(340, 205)
    s.vertex(330, 185)
    s.vertex(320, 205)
    s.vertex(310, 185)
    s.vertex(300, 205)
    s.vertex(290, 185)
    s.vertex(280, 205)
    s.vertex(270, 185)
    s.endShape(CLOSE)
    shape(s, 25, 25)

Po najechaniu kursorem na A zmienia się kolor - zrobione
Po Wciscieniu czegokolwiek zmienia się kolor S - zrobione
Ale też zmienia się kolor A - a tego nie chcę.

Rozmumiem że muszę zakończyć pierwszego ifa, żeby działał tylko na litere S. myślałem że Break to zmieni, lecz niestety to nie to
Mógłby ktoś to przerobić + wytłumaczyć?

Dziękuje i pozdrawiam
Ktoś pomoże?

0

Nie, generalnie w ogóle to źle napisane. Musisz tam mieć jakiś stan i wiedzieć jakim kolorem wypełniać w danej chwili. Musisz POZA tą funkcja mieć jakieś fill_color a w kodzie robić fill(fill_color) a wartość tej zmiennej modyfikować tylko wtedy kiedy należy.

0
Shalom napisał(a):

Nie, generalnie w ogóle to źle napisane. Musisz tam mieć jakiś stan i wiedzieć jakim kolorem wypełniać w danej chwili. Musisz POZA tą funkcja mieć jakieś fill_color a w kodzie robić fill(fill_color) a wartość tej zmiennej modyfikować tylko wtedy kiedy należy.

Mógłbyś rozjaśnić?
i w ostateczności pomóc?
Ewentualnie przerobić i wytłumaczyć?
Litera "A" działa bardzo dobrze.
W momencie najechania kursorem zmienia kolor, gdy kursor z niej zejdzie, również kolor schodzi.
Problem się pojawia gdy kliknę jakikolwiek "Key" na klawiaturze.
Kolor powinien zmieniać się tylko przy literze "S", a zmienia i "S" i "A"

1 użytkowników online, w tym zalogowanych: 0, gości: 1