pygameについての質問です。
背景画像の上に置いた画像の範囲をクリックすると反応が返ってくる、という風にするにはどうすればいいでしょうか。
surfaceやdraw、rectなど自分なりに試してはみたのですが上手くいきません。ご教示ください!
色々やってぐちゃぐちゃになってますが現状のコード追加してみました。
Aの上に、小さめの画像でBを置いてそれをクリックすると音が出る、という感じです。
python
1import pygame 2import os 3 4SCREENRECT = (1024, 600) 5BUTTON_POSITION = (200,200) 6main_dir = '.' 7 8def load_image(file): 9 file = os.path.join(main_dir, 'data', file) 10 try: 11 surface = pygame.image.load(file) 12 except pygame.error: 13 raise SystemExit('Could not load image "%s" %s' % (file, pygame.get_error())) 14 return surface.convert() 15 16class DummySound: 17 def kappa(self): pass 18 19 20def load_sound(file): 21 if not pygame.mixer: 22 return DummySound() 23 file = os.path.join(main_dir, 'data', file) 24 try: 25 sound = pygame.mixer.Sound(file) 26 return sound 27 except pygame.error: 28 print('Warning, unable to load, %s' % file) 29 return DummySound() 30 31 32def main(): 33 pygame.init() 34 screen = pygame.display.set_mode(SCREENRECT) 35 bck = load_image('A.jpg') 36 screen.blit(bck, (0, 0)) 37 38 # tap button 39 button = load_image("B.png").convert_alpha() 40 buttonRect = pygame.Rect(BUTTON_POSITION, button.get_rect().size) 41 screen.blit(button, buttonRect) 42 pygame.display.flip() 43 44 running = True 45 while running: 46 47 for event in pygame.event.get(): 48 if event.type == pygame.QUIT: 49 running = False 50 51 if (event.type == pygame.MOUSEBUTTONDOWN) and (event.button == 1) : 52 if buttonRect.collidepoint(event.pos): 53 Csound = load_sound("C{}.wav".format(random.randrange(0, 19))) 54 return Csound.play() 55 else: 56 print("mekaabu") 57 pygame.display.update() 58 pygame.quit()

回答1件
あなたの回答
tips
プレビュー