|
7 | 7 | import picodvi |
8 | 8 | import framebufferio |
9 | 9 | import displayio |
| 10 | +import adafruit_tlv320 |
| 11 | +import audiobusio |
| 12 | +from audio import Audio |
10 | 13 | from game import Game |
11 | 14 | from definitions import SECOND_LENGTH, TICKS_PER_SECOND |
12 | 15 |
|
|
17 | 20 | # Change this to use a different data file |
18 | 21 | DATA_FILE = "CHIPS.DAT" |
19 | 22 |
|
| 23 | +SOUND_EFFECTS = { |
| 24 | + "BUTTON_PUSHED": "/sounds/pop2.wav", |
| 25 | + "DOOR_OPENED": "/sounds/door.wav", |
| 26 | + "ITEM_COLLECTED": "/sounds/blip2.wav", |
| 27 | + "BOOTS_STOLEN": "/sounds/strike.wav", |
| 28 | + "WATER_SPLASH": "/sounds/water2.wav", |
| 29 | + "TELEPORT": "/sounds/teleport.wav", |
| 30 | + "CANT_MOVE": "/sounds/oof3.wav", |
| 31 | + "CHIP_LOSES": "/sounds/bummer.wav", |
| 32 | + "LEVEL_COMPLETE": "/sounds/ditty1.wav", |
| 33 | + "IC_COLLECTED": "/sounds/click3.wav", |
| 34 | + "BOMB_EXPLOSION": "/sounds/hit3.wav", |
| 35 | + "SOCKET_SOUND": "/sounds/chimes.wav", |
| 36 | + "TIME_LOW_TICK": "/sounds/click1.wav", |
| 37 | + "TIME_UP": "/sounds/bell.wav" |
| 38 | +} |
| 39 | + |
20 | 40 | displayio.release_displays() |
21 | 41 |
|
22 | | -audio_settings = { |
23 | | - 'bit_clock': board.D9, |
24 | | - 'word_select': board.D10, |
25 | | - 'data': board.D11 |
26 | | -} |
| 42 | +i2c = board.I2C() |
| 43 | +dac = adafruit_tlv320.TLV320DAC3100(i2c) |
| 44 | +dac.configure_clocks(sample_rate=44100, bit_depth=16) |
| 45 | +dac.headphone_output = True |
| 46 | +dac.headphone_volume = -15 # dB |
| 47 | + |
| 48 | +audio_bus = audiobusio.I2SOut(board.D9, board.D10, board.D11) |
| 49 | +audio = Audio(audio_bus, SOUND_EFFECTS) |
27 | 50 |
|
28 | 51 | fb = picodvi.Framebuffer(320, 240, clk_dp=board.CKP, clk_dn=board.CKN, |
29 | 52 | red_dp=board.D0P, red_dn=board.D0N, |
|
32 | 55 | color_depth=8) |
33 | 56 | display = framebufferio.FramebufferDisplay(fb) |
34 | 57 |
|
35 | | -game = Game(display, DATA_FILE, **audio_settings) |
| 58 | +game = Game(display, DATA_FILE, audio) |
36 | 59 | tick_length = SECOND_LENGTH / 1000 / TICKS_PER_SECOND |
37 | 60 | while True: |
38 | 61 | start = time.monotonic() |
|
0 commit comments