前提・実現したいこと
importエラーを解決したい
発生している問題・エラーメッセージ
higashiakonoMBP:pyxel_me higashirinako$ python3 invador.py Traceback (most recent call last): File "/Users/higashirinako/Downloads/pyxel_me/invador.py", line 2, in <module> from pyxel import mixer ImportError: cannot import name 'mixer' from 'pyxel' (unknown location) higashiakonoMBP:pyxel_me higashirinako$
該当のソースコード
python
1import pyxel 2from pyxel import mixer 3import random 4import math 5 6pyxel.init() 7 8screen = pyxel.display.set_mode((800, 600)) 9screen.fill((150,150,150)) 10pyxel.display.set_caption('Invaders game') 11 12#Player 13playerimg = pyxel.image.load('player.png') 14playerX,playerY = 370, 480 15playerX_change = 0 16 17#mixer.Sound('laser.wav').play() 18 19#Enemy 20enemyImg = pyxel.image.load('enemy.png') 21enemyX = random.randint(0, 736) 22enemyY = random.randint(50, 150) 23enemyX_change, enemyY_change = 4, 40 24 25#Bullet 26bulletImg = pyxel.image.load('bullet.png') 27bulletX, bulletY = 0, 480 28bulletX_change, bulletY_change = 0, 3 29bullet_state = 'ready' 30 31 32 33#Score 34score_value = 0 35 36def player(x, y): 37 screen.blit(playerImg, (x, y)) 38 39def enemy(x, y): 40 screen.blit(enemyImg, (x, y)) 41 42def fire_bullet(x, y): 43 global bullet_state 44 bullet_state = 'fire' 45 screen.blit(bulletImg, (x + 16, y + 10)) 46 47def isCollision(enemyX, enemyY, bulletX, bulletY): 48 distance = math.sqrt(math.pow(enemyX - bulletX, 2) + math.pow(enemyY - bulletY, 2)) 49 if distance < 27: 50 return true 51 else: 52 return False 53 54running = True 55while running: 56 screen.fill((0, 0, 0)) 57 #font = pyxel.font.SysFont(None, 80) 58 #message = font.render('Hello World', False, (255, 255, 255)) 59 #screen.blit(message, (20,50)) 60 for event in pyxel.event.get(): 61 if event.type == pyxel.QUIT: 62 running = False 63if event.type == pyxel.KEYDOWN: 64 if event.key == pyxel.K_LEFT: 65 playerX_change = -1.5 66 if event.key == pyxel.K_RIGHT: 67 playerX_change = 1.5 68 if event.key == pyxel.K_SPACE: 69 if bullet_state == 'ready': 70 bulletX = playerX 71 fire_bullet(bulletX, bulletY) 72 73 if event.type == pyxel.KEYUP: 74 if event.key == pyxel.K_LEFT or event.key == pyxel.K_RIGHT: 75 playerX_change = 0 76 77 #Player 78 playerX += playerX_change 79 if playerX <= 0: 80 playerX = 0 81 elif playerX >= 736: 82 playerX = 736 83 84 #Enemy 85 if enemy > 440: 86 pass 87 enemyX += enemyX_change 88 if enemyX <= 0: 89 enemyX_change = 4 #go right if come to the leftend 90 enemyY += enemyY_change 91 elif enemyX >= 736: 92 enemyX_change = -4 #go left if come to the rightend 93 enemyY += enemyY_change 94 95 collision = isCollision(enemyX, enemyY, bulletX, bulletY) 96 if collosion: 97 bulletY = 480 98 bullet_state = 'ready' 99 score_value += 1 100 enemyX = random.randint(0, 736) 101 enemyY = random.randint(50, 150) 102 103 #bullet Movement 104 if bulletY <=0: 105 bulletY = 480 106 bullet_state = 'ready' 107 108 if bullet_state == 'fire': 109 fire_bullet(bulletX, bulletY) 110 bulletY -= bulletY_change 111 112 113 114 #Score 115 font = pyxel.font.SysFont(None, 32) #creating fonts 'None' is default 116 score = font.render("Score: {str(score_value)}", True, (255,255,255)) 117 screen.blit(score, (20,50)) 118 119 120 player(playerX, playerY) 121 enemy(enemyX, enemyY) 122 123 pyxel.display.update()
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/04 06:15