Форум программистов, компьютерный форум, киберфорум
Python: PyGame
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/71: Рейтинг темы: голосов - 71, средняя оценка - 4.56
29 / 29 / 0
Регистрация: 31.01.2020
Сообщений: 181

Перемещение машинки по белому холсту

26.02.2021, 18:12. Показов 14093. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализуйте средствами библиотеки Pygame перемещение машинки по белому холсту размером 600×95 пикселей по центру по горизонтали с постоянной скоростью.

Касаясь края, машинка разворачивается и едет в обратную сторону до другого края.

Машинка должна быть реализована в виде класса Car, унаследованного от класса pygame.sprite.Sprite.

Для получения изображения, отражённого по горизонтали, используйте методы пакета transform.

Примечания
Картинки должны лежать в папке data относительно файла программы и иметь те же имена, что и картинки в задании.

На проверку отправьте zip-архив с решением задачи и каталогом data.

Задание проверяется преподавателем.
Изображения
 
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2021, 18:12
Ответы с готовыми решениями:

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

Ограничение перемещения мыши по холсту
У меня следующая проблема: в приложении есть 6 находящихся друг под другом холстов (Canvas). Эти холсты обрабатывают события нажатия...

Подключение по белому ip адресу
Всех приветствую, Возможно ли компьютеру, который подключен к WiFi-роутеру сетевым кабелем, назначить белый ip-адрес, для того, чтобы...

5
8 / 7 / 1
Регистрация: 07.01.2023
Сообщений: 13
16.12.2023, 10:22
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import random
 
import pygame
import os
import sys
 
 
class Car(pygame.sprite.Sprite):
    def __init__(self, size, group):
        super().__init__()
        self.image = load_image("car2.png")
        self.rect = self.image.get_rect()
        self.rect.x = 0
        self.rect.y = size[1] // 2
        self.speed = 1  # speed
        self.velocity = self.speed
        self.size = size  # size
        group.add(self)  # sprite group
        self.flipped_image = pygame.transform.flip(self.image, True, False)
 
    def update(self, *args):
        # Move 
        if self.rect.right >= self.size[0]:  # check if the car reached the right edge of the screen
            self.direction = -1  # change direction ( to left)
        elif self.rect.left <= 0:  # left edge
            self.direction = 1  # Change direction (to right)
        self.rect.x += self.speed * self.direction  # 
        if self.direction == -1:  # flip
            self.image = self.flipped_image
        elif self.direction == 1:
            self.image = load_image("car2.png")
 
 
def load_image(name, colorkey=None):
    fullname = os.path.join('data', name)
    # exit if not exist
    if not os.path.isfile(fullname):
        print(f"Файл с изображением '{fullname}' не найден")
        sys.exit()
    image = pygame.image.load(fullname)
    if colorkey is not None:
        image = image.convert()
        if colorkey == -1:
            colorkey = image.get_at((0, 0))
        image.set_colorkey(colorkey)
    else:
        image = image.convert_alpha()
    return image
 
 
def main():
    pygame.init()
    size = 600, 95
    screen = pygame.display.set_mode(size)
    screen.fill((0, 0, 0))
 
    all_sprites = pygame.sprite.Group()
    car = Car(size, all_sprites)
 
    running = True
    clock = pygame.time.Clock()
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
 
        all_sprites.update()
 
        screen.fill((0, 0, 0))
        all_sprites.draw(screen)
        pygame.display.flip()
 
        clock.tick(60)
 
    pygame.quit()
 
 
if __name__ == '__main__':
    main()
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
16.12.2023, 11:53
Как правильно поменять путь где лежит картинка???? Заменил путь где у меня лежит картинка на:
Python
1
fullname = os.path.join('z:\Python\p2216\venv\car2.png', name)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import random
 
import pygame
import os
import sys
 
 
class Car(pygame.sprite.Sprite):
    def __init__(self, size, group):
        super().__init__()
        self.image = load_image("car2.png")
        self.rect = self.image.get_rect()
        self.rect.x = 0
        self.rect.y = size[1] // 2
        self.speed = 1  # speed
        self.velocity = self.speed
        self.size = size  # size
        group.add(self)  # sprite group
        self.flipped_image = pygame.transform.flip(self.image, True, False)
 
    def update(self, *args):
        # Move
        if self.rect.right >= self.size[0]:  # check if the car reached the right edge of the screen
            self.direction = -1  # change direction ( to left)
        elif self.rect.left <= 0:  # left edge
            self.direction = 1  # Change direction (to right)
        self.rect.x += self.speed * self.direction  #
        if self.direction == -1:  # flip
            self.image = self.flipped_image
        elif self.direction == 1:
            self.image = load_image("car2.png")
 
 
def load_image(name, colorkey=None):
    fullname = os.path.join('z:\Python\p2216\venv\car2.png', name)
    # exit if not exist
    if not os.path.isfile(fullname):
        print(f"Файл с изображением '{fullname}' не найден")
        sys.exit()
    image = pygame.image.load(fullname)
    if colorkey is not None:
        image = image.convert()
        if colorkey == -1:
            colorkey = image.get_at((0, 0))
        image.set_colorkey(colorkey)
    else:
        image = image.convert_alpha()
    return image
 
 
def main():
    pygame.init()
    size = 600, 95
    screen = pygame.display.set_mode(size)
    screen.fill((0, 0, 0))
 
    all_sprites = pygame.sprite.Group()
    car = Car(size, all_sprites)
 
    running = True
    clock = pygame.time.Clock()
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
 
        all_sprites.update()
 
        screen.fill((0, 0, 0))
        all_sprites.draw(screen)
        pygame.display.flip()
 
        clock.tick(60)
 
    pygame.quit()
 
 
if __name__ == '__main__':
    main()
Ошибку выдает: Файл с изображением 'z:\Python\p2216 env\car2.png\car2.png' не найден
0
Заклинатель змей
 Аватар для DobroAlex
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
16.12.2023, 13:08
isaak, у вас escape последовательности в строке из-за виндовых путей, это даже тут в хайлайте синтаксиса видно. Замените \ на \\ в пути
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
16.12.2023, 20:59
Цитата Сообщение от DobroAlex Посмотреть сообщение
isaak, у вас escape последовательности в строке из-за виндовых путей, это даже тут в хайлайте синтаксиса видно. Замените \ на \\ в пути
Заменил по вашему совету на:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import random
 
import pygame
import os
import sys
 
 
class Car(pygame.sprite.Sprite):
    def __init__(self, size, group):
        super().__init__()
        self.image = load_image("car2.png")
        self.rect = self.image.get_rect()
        self.rect.x = 0
        self.rect.y = size[1] // 2
        self.speed = 1  # speed
        self.velocity = self.speed
        self.size = size  # size
        group.add(self)  # sprite group
        self.flipped_image = pygame.transform.flip(self.image, True, False)
 
    def update(self, *args):
        # Move
        if self.rect.right >= self.size[0]:  # check if the car reached the right edge of the screen
            self.direction = -1  # change direction ( to left)
        elif self.rect.left <= 0:  # left edge
            self.direction = 1  # Change direction (to right)
        self.rect.x += self.speed * self.direction  #
        if self.direction == -1:  # flip
            self.image = self.flipped_image
        elif self.direction == 1:
            self.image = load_image("car2.png")
 
 
def load_image(name, colorkey=None):
    fullname = os.path.join('z:\\Python\\p2216\\venv\\car2.png', name)
    # exit if not exist
    if not os.path.isfile(fullname):
        print(f"Файл с изображением '{fullname}' не найден")
        sys.exit()
    image = pygame.image.load(fullname)
    if colorkey is not None:
        image = image.convert()
        if colorkey == -1:
            colorkey = image.get_at((0, 0))
        image.set_colorkey(colorkey)
    else:
        image = image.convert_alpha()
    return image
 
 
def main():
    pygame.init()
    size = 600, 95
    screen = pygame.display.set_mode(size)
    screen.fill((0, 0, 0))
 
    all_sprites = pygame.sprite.Group()
    car = Car(size, all_sprites)
 
    running = True
    clock = pygame.time.Clock()
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
 
        all_sprites.update()
 
        screen.fill((0, 0, 0))
        all_sprites.draw(screen)
        pygame.display.flip()
 
        clock.tick(60)
 
    pygame.quit()
 
 
if __name__ == '__main__':
    main()
Все равно выдает ошибку: 'z:\Python\p2216\venv\car2.png\car2.png' не найден????
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
17.12.2023, 12:26
Все разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2023, 12:26
Помогаю со студенческими работами здесь

RDP через интернет по белому IP
Здравствуйте! В локальной сети стоит сервер на Windows 7. Пропатченный. 2 сетевые. Одна смотрит в локалку с интернетом, на 2й белый IP....

Как работать по белому айпи в интернете
ребята что бы работать по белому айпи в интернете его надо записывать в сам комп или куда?

Движение шарика по холсту в том направлении куда кликает пользователь, добавить изменение цвета при отталкивании от стен
Здравствуйте! Реализовал данную задачу: движение шарика в том направлении куда кликает пользователь, и хотелось бы чтобы он менял цвет при...

Необходимо отобразить на одном холсте 10 графиков, соответствующих белому шуму
Необходимо отобразить на одном холсте 10 графиков, соответствующих белому шуму. В каждый из моментов времени значение функции соответствует...

Известно, что в каждой из трех урн по одному черному и белому шару
Известно, что в каждой из трех урн по одному черному и белому шару. Записать событие символически и найти вероятности события: извлечь...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru