Форум программистов, компьютерный форум, киберфорум
Python: PyGame
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
1

Как правильно проверить нажата картинка или нет?

19.12.2019, 11:00. Показов 2221. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Есть 3 картинки, проверяю нажатие через выделение области

Код
rect1 = pygame.Rect(550, 100, 178, 173)
rect2 = pygame.Rect(550, 300, 178, 173)
rect3 = pygame.Rect(550, 500, 178, 173)
А сами нажатия проверяю через:

Код
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.MOUSEBUTTONDOWN:
            #print(pygame.mouse.get_pos())
            if rect1.collidepoint(event.pos):
                human_choice = 1
                screen.blit(scale_paper_select, [550,100])
                pygame.display.flip()
                print("Ваш выбор - бумага")
                               
            if rect2.collidepoint(event.pos):
                human_choice = 2
                screen.blit(scale_rock_select, [550,300])
                pygame.display.flip()
                print("Ваш выбор - камень")
            
            if rect3.collidepoint(event.pos):
                human_choice = 3
                screen.blit(scale_scissors_select, [550,500])
                pygame.display.flip()
                print("Ваш выбор - ножницы")
В blit подсовываю новое изображение. Не получается сделать так, чтобы выбор оставался только на 1-й картинке. Сейчас нажимаешь на 1-ю картинку, затем на 2 и 3 - и все картинки меняются, а надо чтобы только одна.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2019, 11:00
Ответы с готовыми решениями:

Можно ли проверить, загружена ли УЖЕ картинка или нет?
Допустим, есть в HTML-коде тег <IMG name='Picture1' SRC='1.gif'> Можно ли на клиенте...

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

Проверить: правильно или нет?
Здравствуйте, дорогие форумчане. ----------------------------------- Я вот тут решал задачу... И...

Как проверить была ли нажата кнопка мышью или enter_?
Здравствуйте.Нужно,чтобы если кнопка была нажата мышью или ентером,то делать следующие. var...

2
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
19.12.2019, 11:22 2
Python
1
if event.type == pygame.MOUSEBUTTONDOWN and human_choice == 0:
Добавлено через 40 секунд
Или чем там у вас переменная human_choice была проинициализирована…
0
3 / 3 / 1
Регистрация: 29.08.2012
Сообщений: 306
19.12.2019, 11:35  [ТС] 3
Не хочет так работать(((, вводил даже флаг, только начал изучать язык - могу где-то в элементарных вещах ошибится. Вот полный код:

Код
import pygame, sys
import os, random

os.chdir('C:\\Users\\maksim\\Desktop\\GAME_PY\\')

pygame.init()

BLACK = (0, 0, 0)

size = [800, 800]
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Камень, ножницы, бумага")

screen.fill([255, 255, 255])
paper = pygame.image.load('paper.png')
rock = pygame.image.load('rock.png')
scissors = pygame.image.load('scissors.png')

paper_select = pygame.image.load('paper_select.png')
rock_select = pygame.image.load('rock_select.png')
scissors_select = pygame.image.load('scissors_select.png')

pc = pygame.image.load('pc.png')

scale_paper = pygame.transform.scale(paper,(181,175))
scale_rock =  pygame.transform.scale(rock,(181,175))
scale_scissors = pygame.transform.scale(scissors,(181,175))

scale_paper_select = pygame.transform.scale(paper_select,(181,175))
scale_rock_select =  pygame.transform.scale(rock_select,(181,175))
scale_scissors_select = pygame.transform.scale(scissors_select,(181,175))


scale_pc = pygame.transform.scale(pc,(181,175))


screen.blit(scale_paper, [550,100])
screen.blit(scale_rock, [550,300])
screen.blit(scale_scissors, [550,500])

screen.blit(scale_pc, [100,300])


rect1 = pygame.Rect(550, 100, 178, 173)
rect2 = pygame.Rect(550, 300, 178, 173)
rect3 = pygame.Rect(550, 500, 178, 173)



pygame.draw.line(screen, BLACK, [400,0],[400,800], 5)
pygame.display.flip()

# pygame.draw.rect(screen, (211,211,211), (550, 100, 178, 173))
# pygame.draw.rect(screen, (211,211,211), (550, 300, 178, 173))
# pygame.draw.rect(screen, (211,211,211), (550, 500, 178, 173))


pc_choice=random.randint(1,3)

pygame.time.wait(500)

if pc_choice == 1:
    gg = "Rock"
    screen.blit(scale_rock, [100,300])
    pygame.display.flip()
elif pc_choice == 2:
    gg = "Scissors"
    screen.blit(scale_scissors, [100,300])
    pygame.display.flip()
else:
    gg = "Paper"
    pc_choice == 3
    screen.blit(scale_paper, [100,300])
    pygame.display.flip()

human_choice = 0

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
                
        if event.type == pygame.MOUSEBUTTONDOWN and human_choice != 0:
        #print(pygame.mouse.get_pos())
            if rect1.collidepoint(event.pos):
                human_choice = 1
                screen.blit(scale_paper_select, [550,100])
                pygame.display.flip()
                print("Ваш выбор - бумага")     
                    
            if rect2.collidepoint(event.pos):
                human_choice = 2
                screen.blit(scale_rock_select, [550,300])
                pygame.display.flip()
                print("Ваш выбор - камень")
                    
            if rect3.collidepoint(event.pos):
                human_choice = 3
                screen.blit(scale_scissors_select, [550,500])
                pygame.display.flip()
                print("Ваш выбор - ножницы")
                
               
            
if human_choice == 1:
    print("Ваш выбор - бумага")
    if pc_choice == 1:
        print("Вы выйграли")
    elif pc_choice == 2:
        print("Компьютер выйграл")
    else: 
        pc_choice == 3  
        print("Ничья")   
   

if human_choice == 2:
    print("Ваш выбор - камень")
    if pc_choice == 1:
        print("Ничья")
    elif pc_choice == 2:
        print("Вы выйграли")
    else: 
        pc_choice == 3  
        print("Компьютер выйграл")    


if human_choice == 3:
    print("Ваш выбор - ножницы")
    if pc_choice == 1:
        print("Компьютер выйграл")
    elif pc_choice == 2:
        print("Ничья")
    else: 
        pc_choice == 3  
        print("Вы выйнрали")   

print(pc_choice, human_choice)

pygame.quit()
0
19.12.2019, 11:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2019, 11:35
Помогаю со студенческими работами здесь

Проверить Правильно ли я сделал блок схему или нет
блок схема во вложении ато что то есть сомнения по поводу правильности код программы uses crt;...

Можете проверить библиотеку я правильно сделал или нет пожалуйста?
Можете проверить библиотеку я правильно сделал или нет пожалуйста? Я по книге Иванова делал.

Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ с++
Помогите написать задачку по с++ "Проверить, правильно ли в текст входят круглые скобки. Ответ ДА...

Выполнить интерполяцию и аппроксимацию в 35 точках с помощью функций cspline, sinfit и linfit... Проверить, правильно или нет?
выполнить интерполяцию и аппроксимацию в 35 точках таблично заданных функций F1(x),F2(x), используя...

Как осуществлять проверку на то, картинка это или нет ?
Как осуществлять проверку на то, картинка это или нет, и если не картинка то вывести ошибку...

Как узнать файл это картинка или нет
делаю загрузку файлов, есть вариант, но столкнулся с проблемой, файл картинка не показывает тип...

Как в парсере сделать проверку существует картинка на сайте или нет?
Здравствуйте сделала парсер для извлечения новостей, там кроме новостей в отдельную папку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru