2016-09-30 2 views
0

У меня есть следующие упражнения, чтобы сделать для школы:добавления баллов при щелчке внутри прямоугольника

Создайте текстовое поле, которое показывает счет следующим образом: «Счет:» (Вы можете использовать текст (StringValue, IntegerXposition, IntegerYposition) для рисунок текста), начиная с нуля. Сделайте так, чтобы, когда пользователь нажимает левую кнопку мыши, к результату добавляется оценка 10 баллов.

Создайте прямоугольник на экране и сделайте так, чтобы при щелчке пользователем внутри прямоугольника к значению оценки добавляется оценка 20 баллов.

Я сделал первую часть, но не знаю, как добавить оценку 20 при нажатии внутри прямоугольника. Это код, который у меня есть.

def setup(): 
    global Score, xPos, yPos 
    size(800,800) 
    textSize(30) 
    Score= 0 
    xPos= 200 
    yPos= 200 

def draw(): 
    global Score, xPos, yPos 
    background(51) 
    rect(xPos,yPos,100,100) 
    text("Score: ", 50, 50) 
    text(Score, 150, 50)  


def mousePressed(): 
    global Score, xPos, yPos 
    if (mouseButton == LEFT): 
     Score= Score + 10 
+0

Ну, просто найдите, где находится мышь, и проверьте, не нарисовал ли он прямоугольник. У вас есть в основном остальная часть кода, сделанная для увеличения оценки ... Попробуйте и отредактируйте свой вопрос, когда у вас возникнут проблемы, о которых, возможно, не спрашивали раньше. – MooingRawr

ответ

0

Я не уверен, что это возможно только с Python/Python 3.5.1. Я думаю, что tkinter больше подходит для создания фигур с Python (И я не уверен, потому что, я никогда не использовал его раньше). Я бы предложил использовать для этого инициализацию class. Вот что я получил:

class shapesYo: 
    def __init__(self, xPos, yPos): 
     self.xPos = xPos 
     self.yPos = yPos 
     self.size = (800, 800) 
    def displayPos(self): 
     print("The x Position is {0} and the y Position is {1}.".format(self.xPos, self.yPos)) 
    def displayScore(self): 
     self.Score = 0 
     print("Score: {0}".format(self.Score)) 

rect = shapesYo(100, 100) 
text = shapesYo(50, 50) 
rect.displayPos() 
text.displayPos() 
text.displayScore() 

Это не может помочь с фактическими событиями, происходящими (или что вы хотите, чтобы это произошло) в коде, но это лучше было (на мой взгляд), чтобы настроить набор такого кода.

0

Просто проверьте положение указателя мыши, когда есть щелчок.

Я не знаю, какую библиотеку вы используете, но просто замените mouseX и mouseY с фактическими именами переменных.

def mousePressed(): 
    global Score, xPos, yPos 
    if mouseButton == LEFT and xPos < mouseX < xPos+100 and yPos < mouseY < yPos+100: 
     Score= Score + 10 
Смежные вопросы