/
MDTOP
/
Name
Обзор
Документация
Войти
/
MDTOP
/
Name
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ooter_game.py
204 строки
5 KB
Денис Батаев
first_commit
14 фев 2026, 13:42
14 фев 2026, 13:42
4447c49
Код
Авторство
О чём код?
from pygame import * from random import randint import time as t window = display.set_mode((700,500)) background = transform.scale(image.load('galaxy.jpg'),(700,500)) font.init() font = font.Font(None,70) mixer.init() mixer.music.load('space.ogg') mixer.music.play() bulet_s = mixer.Sound('fire.ogg') clock = time.Clock() game = True class Gamesprite(sprite.Sprite): def __init__(self,player_image,player_x,player_y,player_speed,size_x=80,size_y=80): super().__init__() self.image = transform.scale(image.load(player_image),(size_x,size_y)) self.speed = player_speed self.rect = self.image.get_rect() self.rect.x = player_x self.rect.y = player_y def reset(self): window.blit(self.image,(self.rect.x,self.rect.y)) class Player(Gamesprite): def update(self): keys = key.get_pressed() if keys[K_LEFT] and self.rect.x > 5: self.rect.x -= self.speed if keys[K_RIGHT] and self.rect.x < 620: self.rect.x += self.speed def pam(self): bulet = Bulet('bullet.png',self.rect.centerx,self.rect.top,15,10,10) bulets.add(bulet) class Bulet(Gamesprite): def update(self): self.rect.y -= self.speed if self.rect.y <= 1: self.kill() class Enemy(Gamesprite): def __init__(self,player_image,player_x,player_y,player_speed): super().__init__(player_image,player_x,player_y,player_speed) self.direction = 'up' def update(self): global pr_n if self.rect.y <= 450: self.rect.y += self.speed else: self.rect.x = randint(20,620) self.rect.y = 20 pr_n += 1 enems = sprite.Group() monsters = sprite.Group() bulets = sprite.Group() x,y = 80,80 for i in range(5): monster = Enemy('asteroid.png',x,y,2) x += randint(60,140) monsters.add(monster) player = Player('rocket.png',350,420,10) finish = False pr_n = 0 chet_n = 0 reolad = False patron = 5 win = font.render('You win',True,(233,233,211)) lose = font.render('You lose',True,(233,233,211)) reoladd = font.render('reolad...',True,(255,0,0)) finish = False while game: for e in event.get(): if e.type == QUIT: game = False if finish != True: window.blit(background,(0,0)) if sprite.collide_rect(player,monster): finish = True kick.play() window.blit(lose,(250,250)) keys = key.get_pressed() if chet_n >= 50: finish = True window.blit(win,(250,250)) pr = font.render(f'пропущено {pr_n}',True,(233,233,211)) chet = font.render(f'счет {chet_n}',True,(233,233,211)) window.blit(background,(0,0)) window.blit(pr,(10,25)) window.blit(chet,(10,50)) if reolad != True: if keys[K_SPACE]: if patron >= 1: patron -= 1 player.pam() print(patron) else: reolad = True time_nach = t.time() else: time_konec = t.time() if time_konec - time_nach >= 3: reolad = False patron = 5 else: window.blit(reoladd,(400,250)) tts = sprite.groupcollide(monsters,bulets,True,True) tts2 = sprite.groupcollide(enems,bulets,True,True) for c in tts: chet_n += 1 monster = Enemy('asteroid.png',x,y,2) x = randint(60,620) monster.add(monsters) for c in tts2: chet_n += 1 enem = Enemy('ufo.png',x,y,2) x = randint(60,620) enems.add(enem) window.blit(chet,(10,50)) bulets.draw(window) bulets.update() enems.draw(window) enems.update() monsters.draw(window) monsters.update() player.update() player.reset() for f in monsters: if sprite.collide_rect(player,f): finish = True window.blit(lose,(250,250)) display.update() clock.tick(60) ''' from pygame import * window = display.set_mode((900,800)) background = transform.scale(image.load('background.jpg'),(900,800)) x1,x2,y1,y2 = 250,350,350,350 mixer.init() mixer.music.load('jungles.ogg') mixer.music.play() koin = mixer.Sound('money.ogg') kick = mixer.Sound('kick.ogg') clock = time.Clock() game = True font.init() font = font.Font(None,70) win = font.render('You win',True,(233,233,211)) lose = font.render('You lose',True,(233,233,211)) while game: for e in event.get(): if e.type == QUIT: game = False if finish != True: window.blit(background,(0,0)) if sprite.collide_rect(sprite1,sprite2) or sprite.collide_rect(sprite1,wall2) or sprite.collide_rect(sprite1,wall1) or sprite.collide_rect(sprite1,wall3): finish = True kick.play() window.blit(lose,(250,250)) elif sprite.collide_rect(sprite1,sprite3): finish = True window.blit(win,(250,250)) koin.play() '''