Вот мой код.
Код: Выделить всё
import random
import os
import sys
import time
from playsound import playsound
import multiprocessing
class Unit:
def __init__(self, name, hp, strength, defense):
self.name = name
self.hp = hp
self.strength = strength
self.defense = defense
def __str__(self):
return f"""Name: {self.name}
HP : {self.hp}
STR : {self.strength}
DEF : {self.defense} \n"""
def attack(self, enemy):
input("Press Enter to continue \n")
print(f"{self.name} attacks {enemy.name}!")
randomVariable = random.randint(0, 100)
if randomVariable < 70:
damage = self.strength - enemy.defense
damage = notLessZero(damage)
print(f"{self.name} hits {enemy.name} for {damage}!")
enemy.hp -= damage
enemy.hp = notLessZero(enemy.hp)
print(enemy)
else:
print("Miss!")
def notLessZero(variable):
return max(0, variable)
def battle(playerUnit, enemyUnit):
while enemyUnit.hp > 0:
playerUnit.attack(enemyUnit)
def loopingMusic(soundFile):
while True:
playsound("music/cats.wav")
def main():
name = input("What's your name? \n")
print("a")
p = multiprocessing.Process(target=loopingMusic, args=("cats.wav",))
p.start()
print("b")
playerUnit = Unit(name, 5, 6, 2)
enemyUnit = Unit("Enemy", 5, 2, 3)
print("c")
print(playerUnit)
print(enemyUnit)
print("d")
battle(playerUnit, enemyUnit)
print("e")
p.terminate()
print("f")
playsound('music/riff.wav', block = False)
print("g")
print("Enemy defeated\n")
input("Congatulations\n")
if __name__ == '__main__':
sys.exit(main())
Журнал сообщений при вызове pyInstaller (2/2)
Тестирование исполняемого файла. Дает странные результаты
Я подозреваю, что это как-то связано с использованием мной многопроцессорной обработки, но я не могу найти много информации об этом, хотя был бы рад, если бы меня поправили. В идеале мой код должен просто переходить от a к g без повторения букв.
Изменить: мне предложили этот вопрос: проблема многопроцессорности [pyqt, py2exe]Однако я не использую FreezeSupport() для своего приложения и не совсем знаю, как применить его к моей проблеме.
Редактировать 2: я решил проблему проблема. Вместо использования многопроцессорности я использовал поток, а вместо playsound я использую pygame
Подробнее здесь: https://stackoverflow.com/questions/788 ... ow-to-stop