PygameGUI加载libpng16-16.dll错误:系统无法访问该文件
在我的pygame项目中,我使用了pygame和pygameGUI这个库,但我无法加载任何png格式的图片,因为用来加载这些图片的dll文件无法加载。
Traceback (most recent call last):
File "C:\Users\tomto\PycharmProjects\CasinoPy\main.py", line 82, in <module>
test = pygame.image.load('Assets/Cards/2_of_Hearts.png')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pygame.error: Failed loading libpng16-16.dll: The file cannot be accessed by the system.
Process finished with exit code 1
我也重新安装了libpng这个库,但还是没用。下面是我的代码。
import pygame
import pygame_gui
from pygame_gui.core import ObjectID
import random
import sys
pygame.init()
RED = (255, 0, 0)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
SCREEN_SIZE = (1000, 600)
SUITS = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
VALUES = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'jack', 'queen', 'king', 'ace']
deck = []
screen = pygame.display.set_mode(SCREEN_SIZE)
pygame.display.set_caption("Casino")
clock = pygame.time.Clock()
running = True
manager = pygame_gui.UIManager(SCREEN_SIZE, 'button.json')
manager.get_theme().load_theme('label.json')
class Menu:
def __init__(self):
self.running = True
self.title = pygame_gui.elements.UILabel(relative_rect=pygame.Rect((400, 100), (200, 50)),
text='Casino',
manager=manager,
object_id=ObjectID(class_id='@menuText', object_id='#title'))
self.blackjackButton = pygame_gui.elements.UIButton(relative_rect=pygame.Rect((400, 200), (200, 50)),
text='Blackjack',
manager=manager,
object_id=ObjectID(class_id='@menuButtons',
object_id='#blackjackButton'))
self.pokerButton = pygame_gui.elements.UIButton(relative_rect=pygame.Rect((400, 300), (200, 50)),
text='Poker',
manager=manager,
object_id=ObjectID(class_id='@menuButtons',
object_id='#pokerButton'))
self.loginButton = pygame_gui.elements.UIButton(relative_rect=pygame.Rect((400, 400), (200, 50)),
text='Login',
manager=manager,
object_id=ObjectID(class_id='@menuButtons',
object_id='#loginButton'))
def draw(self):
while self.running:
time_delta = clock.tick(60) / 1000.0
screen.fill(WHITE)
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.running = False
if event.type == pygame_gui.UI_BUTTON_PRESSED:
if event.ui_element == self.blackjackButton:
print("Start Game")
elif event.ui_element == self.pokerButton:
pass
manager.process_events(event)
manager.update(time_delta)
manager.draw_ui(screen)
pygame.display.update()
clock.tick(60)
class Card:
def __init__(self, suit, value):
self.suit = suit
self.value = value
self.name = f'{value}_of_{suit}'
self.imagePath = f'Assets/Cards/{self.name}.png'
self.image = pygame.image.load(self.imagePath)
test = Card('Hearts', '2')
menu = Menu()
menu.draw()
我尝试把dll文件复制到site-packages目录中的不同文件夹里,但我对此完全不太了解。
0 个回答
暂无回答