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

Как заставить мяч отскакивать от платформы

02.12.2019, 15:35. Показов 7250. Ответов 1

Author24 — интернет-сервис помощи студентам
Мне нужно чтобы мяч не только от пола отскакивал, но и от платформы, которой управляет пользователь
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
import pygame
import sys
 
size = width, height = 800, 600
black = 0, 0, 0
 
 
def main():
    pygame.init()
    screen = pygame.display.set_mode(size)
    ball_image = pygame.image.load("basketball.png")
    ball_rect = ball_image.get_rect()
    ball_rect.x = 101
    ball_rect.y = 101
    game_over = False
    dx = 2
    dy = 2
    platform_x = 250
    platform_y = 500
    move_right = False
    move_left = False
 
    while not game_over:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
        screen.fill(black)
        pygame.draw.rect(screen, (255, 255, 255), (platform_x, platform_y, 150, 20))
        screen.blit(ball_image, ball_rect)
        ball_rect.x += dx
        ball_rect.y += dy
        if ball_rect.y > 500 or ball_rect.y < 0:
            dy *= -1
        if ball_rect.x > 700 or ball_rect.x < 0:
            dx *= -1
        if event.type == pygame.KEYDOWN:
            if chr(event.key) == 'd':
                move_right = True
        elif event.type == pygame.KEYUP:
            if chr(event.key) == 'd':
                move_right = False
        if move_right:
            platform_x += 1
        if event.type == pygame.KEYDOWN:
            if chr(event.key) == 'a':
                move_left = True
        elif event.type == pygame.KEYUP:
            if chr(event.key) == 'a':
                move_left = False
        if move_left:
            platform_x -= 1
        pygame.display.flip()
        pygame.time.wait(10)
 
 
if __name__ == '__main__':
    main()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2019, 15:35
Ответы с готовыми решениями:

В игре 'Арканоид' мяч отталкивается от пустого места на линии платформы
Добрый день! В игре 'Арканоид' мяч отталкивается от пустого места на линии платформы. Помогите...

Как заставить сайт написанный на 5.3 заставить работать на 5.6? Как принудительно включить register_globals?
Есть древний сайт. Работает на php 5.3. Как объяснил разработчик данного сайта - все дело в...

как заставить писиспикер заставить хоть чтото проскрипеть?
помогите дураку как заставить писиспикер заставить хоть чтото проскрипеть??? в бэйсике с этим не...

1) Как заставить PictureBox появляться в форме без нажатия кнопки 2)Как заставить этот же PictureBox переместится
1)Как заставить PictureBox появляться в форме без нажатия кнопки? 2)Как заставить этот же...

Шарик должен отскакивать от краёв полей
Не получается сделать программу. Шарик должен отскакивать от краёв полей (это сделать получилось),...

1
1287 / 672 / 365
Регистрация: 07.01.2019
Сообщений: 2,251
02.12.2019, 23:35 2
Так можно

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
import pygame
import sys
 
size = width, height = 800, 600
black = 0, 0, 0
 
 
def main():
    pygame.init()
    screen = pygame.display.set_mode(size)
    ball_image = pygame.image.load("basketball.png")
    ball_rect = ball_image.get_rect()
    ball_rect.x = 101
    ball_rect.y = 101
    game_over = False
    dx = 2
    dy = 2
    platform_x = 250
    platform_y = 500
    move_right = False
    move_left = False
 
    while not game_over:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
        screen.fill(black)
        pygame.draw.rect(screen, (255, 255, 255), (platform_x, platform_y, 150, 20))
        screen.blit(ball_image, ball_rect)
        ball_rect.x += dx
        ball_rect.y += dy
        if ball_rect.y > 500 or ball_rect.y < 0:
            dy *= -1
        if ball_rect.x > 700 or ball_rect.x < 0:
            dx *= -1
        #------------------------------------------
        if ball_rect.y > platform_y - 110 and ball_rect.x > platform_x and ball_rect.x < platform_x + 150:
            dy *= -1
        if event.type == pygame.KEYDOWN:
            if chr(event.key) == 'd':
                move_right = True
        elif event.type == pygame.KEYUP:
            if chr(event.key) == 'd':
                move_right = False
        if move_right:
            platform_x += 1
        if event.type == pygame.KEYDOWN:
            if chr(event.key) == 'a':
                move_left = True
        elif event.type == pygame.KEYUP:
            if chr(event.key) == 'a':
                move_left = False
        if move_left:
            platform_x -= 1
        pygame.display.flip()
        pygame.time.wait(10)
 
 
if __name__ == '__main__':
    main()
0
02.12.2019, 23:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2019, 23:35
Помогаю со студенческими работами здесь

Произвольное движение мяча, который будет отскакивать от стен
Нужно сделать произвольное движение мяча который будет отскакивать от стен

Сделать форму на которой надпись будет отскакивать от курсора
Помогите пожалуйста разобраться с задачей. Нужно сделать форму на которой надпись будет отскакивать...

Летающие шарики(должны отскакивать от стен и друг от друга)
Здравствуйте. Вся суть вот в чем: имеется четырехугольник в нем летают Nное кол-во шариков(в моем...

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

Как сделать что бы мяч отбивался от препятственных блоков?
//Подключаем модули #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include...


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

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