68 lines
2.9 KiB
Python
68 lines
2.9 KiB
Python
|
from tonegen import ToneGen
|
||
|
from imageobj import Obj
|
||
|
import textwrap
|
||
|
class Bomb:
|
||
|
def __init__(self, pygame, screen):
|
||
|
self.pygame = pygame
|
||
|
self.screen = screen
|
||
|
self.ticktimer = 1
|
||
|
pygame.mixer.music.load('assets/music.ogg')
|
||
|
pygame.mixer.music.play(-1, 0.0)
|
||
|
self.lcdtext = ""
|
||
|
self.explosion = self.pygame.mixer.Sound('assets/bum.ogg')
|
||
|
self.sprites = []
|
||
|
self.sprites.append(Obj(pygame.image.load('assets/room.png')))
|
||
|
self.sprites.append(Obj(pygame.image.load('assets/case.png')))
|
||
|
self.sprites.append(Obj(pygame.image.load('assets/dynamite.png'), 200, 400))
|
||
|
xbut = 598
|
||
|
ybut = 100
|
||
|
self.sprites.append(Obj(pygame.image.load('assets/lcd.png'), 260, 90))
|
||
|
button_img = pygame.image.load('assets/button.png')
|
||
|
buttons = [
|
||
|
[Obj(button_img, xbut, ybut, "1"), Obj(button_img, xbut + 68, ybut, "2"), Obj(button_img, xbut + 136, ybut, "3")],
|
||
|
[Obj(button_img, xbut, ybut + 68, "4"), Obj(button_img, xbut + 68, ybut + 68, "5"), Obj(button_img, xbut + 136, ybut + 68, "6")],
|
||
|
[Obj(button_img, xbut, ybut + 136, "7"), Obj(button_img, xbut + 68, ybut + 136, "8"), Obj(button_img, xbut + 136, ybut + 136, "9")],
|
||
|
[Obj(button_img, xbut, ybut + 204, "X"), Obj(button_img, xbut + 136, ybut + 204, ">")]
|
||
|
]
|
||
|
for buttonx in buttons:
|
||
|
for button in buttonx:
|
||
|
self.sprites.append(button)
|
||
|
|
||
|
def getevents(self):
|
||
|
for event in self.pygame.event.get(): # User did something
|
||
|
if event.type == self.pygame.QUIT: # If user clicked close
|
||
|
return False
|
||
|
elif event.type == self.pygame.MOUSEBUTTONUP:
|
||
|
pos = self.pygame.mouse.get_pos()
|
||
|
for sprite in self.sprites:
|
||
|
if sprite.rect.collidepoint(pos):
|
||
|
if sprite.button:
|
||
|
self.buttonpress_handler(sprite.button)
|
||
|
|
||
|
def buttonpress_handler(self, button):
|
||
|
print(f"The button {button} was pressed.")
|
||
|
if button == "X":
|
||
|
self.lcdtext = ""
|
||
|
elif button == ">":
|
||
|
self.lcdtext = str(len(self.lcdtext))
|
||
|
else:
|
||
|
self.lcdtext += button
|
||
|
|
||
|
def beep(self):
|
||
|
if self.ticktimer >= 1000:
|
||
|
self.ticktimer = 1000 - self.ticktimer
|
||
|
ToneGen(self.pygame, 1000, 1000, 0.2)
|
||
|
|
||
|
def drawstuff(self):
|
||
|
self.screen.fill((0,0,0))
|
||
|
for sprite in self.sprites:
|
||
|
sprite.draw(self.screen)
|
||
|
myfont = self.pygame.font.SysFont('Liberation Mono, Bold', 16)
|
||
|
lines = textwrap.wrap(self.lcdtext, 23)[-9:]
|
||
|
ybase = 170
|
||
|
i = 0
|
||
|
for line in lines:
|
||
|
renderedtext = myfont.render(line, False, (0, 0, 0))
|
||
|
self.screen.blit(renderedtext, (310, ybase + (i * 16)))
|
||
|
i += 1
|
||
|
self.pygame.display.flip()
|