Форум программистов, компьютерный форум, киберфорум
Python: PyGame
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
4248 / 1746 / 250
Регистрация: 01.05.2013
Сообщений: 7,817

Анимация буквы Р

08.06.2020, 01:32. Показов 2410. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Только начал осваиваться с модулем pygame и хотел сделать что-то очень простенькое, а именно анимацию буквы Р, при этом чтобы она отскакивала от границ окна pygame и меняла в этом момент цвет.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pygame
import math
from random import randint
 
pygame.init()
w=800
h=600
screen = pygame.display.set_mode([w,h])
P = [[w/2,100],[w/2,200],[w/2,400]]
colour = [randint(100,255),randint(100,255),randint(100,255)]
Pi = math.pi
dx = 1
dy = -2
done = False
while (not done):
    pygame.time.delay(5)
    for event in pygame.event.get():
        if event == pygame.QUIT:
            done = True
    for i in range(3):
        if (P[i][0] + dx > 800 or P[i][0] + dx < 0):
            dx = -dx
            colour = [randint(100,255),randint(100,255),randit(100,255)]
        if (P[i][1] + dy > 600 or P[i][0] + dy <0):
            dy = -dy
            colour = [randint(100,255),randint(100,255),randit(100,255)]
    for i in range(3):
        P[i][0] += dx
        P[i][1] += dy
    screen.fill([0,0,0])
    pygame.draw.aalines(screen, colour, False, P, 1)
    pygame.draw.arc(screen, colour, [P[1], 100, w/2], 3*Pi/2, 5*Pi/2)
    pygame.display.update()
pygame.display.quit()
pygame.quit()
При выполнении выдаёт ошибку в строчке 32 TypeError: Invalid recstyle argument. Не понимаю, что я сделал не так ?
Как я понимаю в обозначении прямоугольника указывается (a,b,width,height): (a,b) положение прямоугольника по x и y; (width,height) - ширина и высота фигуры. Ну так я это и указал. Или нет ?))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2020, 01:32
Ответы с готовыми решениями:

Анимация в модуле crt. Движение буквы
Мне нужно в паскаль написать программу что у меня на экране выходило буква А и проходила шагов5-10 вот там в программе что-то...

Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’ на буквы ‘к’, буквы ‘л’ на буквы ‘в’, буквы ‘в’ на
Задание: Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’ на буквы ‘к’, буквы ‘л’ на буквы ‘в’, буквы ‘в’ на буквы ‘л’.

Напишите программу, которая заменяет в символьной строке все буквы a на буквы b , a буквы A на буквы B
Напишите программу, которая заменяет в символьной строке все буквы a на буквы b , a буквы A на буквы B в C# консоль

4
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
08.06.2020, 02:14
Цитата Сообщение от Turok123 Посмотреть сообщение
в обозначении прямоугольника указывается (a,b,width,height)
Правильно. А у Вас что?
Python
1
[P[1], 100, w/2]
Или Вы ожидаете, что список P[1] сам развернется в два числа? Так нет.
1
4248 / 1746 / 250
Регистрация: 01.05.2013
Сообщений: 7,817
08.06.2020, 04:40  [ТС]
Исправил. Теперь бы дугу состыковать с линией буквы Р
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import pygame
import math
from random import randint
 
pygame.init()
w = 800
h = 600
screen = pygame.display.set_mode((w,h))
P = [[400,100],[400,200],[400,400]]
colour = [randint(100,255),randint(100,255),randint(100,255)]
Pi = math.pi
dx = 1
dy = -2
done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
    pygame.time.delay(5)
    for i in P:
        if (i[0] + dx > 800 or i[0] + dx < 0):
            dx = -dx
            colour = [randint(100,255),randint(100,255),randint(100,255)]
        if (i[1] + dy > 600 or i[1] + dy < 0):
            dy = -dy
            colour = [randint(100,255),randint(100,255),randint(100,255)]
        i[0] += dx
        i[1] += dy
    screen.fill([0,0,0])
    pygame.draw.aalines(screen, colour, False, P, 1)
    pygame.draw.arc(screen, colour, [i[0], i[1], 150, 100], 3*Pi/2, 5*Pi/2)
    pygame.display.update()
pygame.display.quit()
pygame.quit()
0
4248 / 1746 / 250
Регистрация: 01.05.2013
Сообщений: 7,817
09.06.2020, 01:08  [ТС]
До сих пор не понимаю как дугу совместить с линией.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
09.06.2020, 06:10
Лучший ответ Сообщение было отмечено Turok123 как решение

Решение

Turok123,
Python
1
[P[0][0]-75, P[0][1], 150, 100]
1) Надо отнять половину ширины, так как задается правый верхний угол прямоугольника, вмещающего всю окружность, а рисуется только половина
2) Дуга полезла вниз из-за замены P[0] на i - ведь в конце цикла i - это последний элемент списка, а не первый
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2020, 06:10
Помогаю со студенческими работами здесь

Заменить в символьной строке все буквы "a" на буквы "b" , a буквы "A" на буквы "B"
Помогите решить эту задачу на питоне, пожалуйста- Замена a-b и наоборот Напишите программу, которая заменяет в символьной...

Заменить в символьной строке все буквы "a" на буквы "b", a буквы "A" на буквы "B"
Здравствуйте,помогите пожалуйста написать программу .Напишите программу, которая заменяет в символьной строке все буквы a на буквы b , a...

Графика. Анимация буквы ""
на экране изображена буква « Н » высотой в 14 лент . Ступень медленно несколько раз поднимается и опускается . При изменении направления...

Анимация в OpenGL, а где собсно, анимация?
// Bounce.cpp // Demonstrates a simple animated rectangle program with GLUT // OpenGL SuperBible, 3rd Edition // Richard S. Wright...

Анимация / мини-анимация в консоли
Добрый день ! Реализую логические операции , результат которых должен быть представлен в двоичном коде , и позже применить эти операции ,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru