Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 17.12.2022
Сообщений: 1

Boom them all

17.12.2022, 13:39. Показов 4167. Ответов 1

Студворк — интернет-сервис помощи студентам
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
import pygame
import os
import sys
import random
 
if __name__ == '__main__':
    pygame.init()
    size = width, height = 500, 500
    screen = pygame.display.set_mode(size)
 
 
    def load_image(name, colorkey=None):
        fullname = os.path.join('..\data', name)
        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
 
 
    class Bomb(pygame.sprite.Sprite):
        image = load_image("bomb.png")
        image_boom = load_image("boom.png")
 
        def __init__(self, group):
            super().__init__(group)
            self.image = Bomb.image
            self.rect = self.image.get_rect()
            self.rect.x = random.randrange(width)
            self.rect.y = random.randrange(height)
 
        def update(self, *args):
            if args and args[0].type == pygame.MOUSEBUTTONDOWN and \
                    self.rect.collidepoint(args[0].pos):
                self.image = self.image_boom
 
    running = True
    all_sprites = pygame.sprite.Group()
    for i in range(20):
        Bomb(all_sprites)
    while running:
        screen.fill((0, 0, 0))
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            if event.type == pygame.MOUSEBUTTONDOWN:
                for bomb in all_sprites:
                    all_sprites.update(event)
        all_sprites.draw(screen)
        all_sprites.update()
        pygame.display.flip()
    pygame.quit()
Как сделать так, чтобы, появляясь, бомбочки не выходили за границы экрана?
Изображения
  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2022, 13:39
Ответы с готовыми решениями:

Boom them all 2
На экране размером 500×500 пикселей в случайных местах располагаются 20 бомбочек. Помните? Но теперь эти бомбочки не могут...

Boom them all
После запуска программы на холсте размером 500×500 пикселей в случайных положениях располагаются 20 бомбочек. Бомбочки могут наезжать...

Boom-box
Господа-товарищи, вот скажите мне, вы считаете нормальным ходить по улице "со своей музыкой"? Надеюсь, многие ещё помнят...

1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
17.12.2022, 14:10
Лучший ответ Сообщение было отмечено aqrtu32 как решение

Решение

вот тут надо поправить
Python
1
2
self.rect.x = random.randrange(width)
self.rect.y = random.randrange(height)
вместо width и height : width-im_w и height-im_h , где im_w, im_h размеры вашей картинки, которые надо предварительно узнать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2022, 14:10
Помогаю со студенческими работами здесь

Новый сервис Seo-boom
Не подскажите включает ли Яндекс в подсчет тИЦ профили на форумах?

Как mail.ru поимел всех своим boom.ru
N-лет назад, был у mail.ru открыт проект бесплатного хостинга для статики. Сегодня зашел и увидел ...

Подобрать компьютер для работы в After effect, Premier pro, photoshop, toon boom
Доброго времени суток. В компьютерах я слаб, из-за чего обращаюсь к вам. Помогите подобрать компьютер для работы в After effect,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru