问题描述
今天过得怎么样?
最近,我一直在尝试制作自己的国际象棋游戏,并且对pygame做了大量研究。
我已经到了可以显示木板(使用的“ chessboard”和“ python-chess”库)的位置,并且当玩家单击某个正方形时,我就能知道是哪个正方形。
但是,我要制作它,以便您可以单击并将一块拖到新的正方形。
这是我的代码:
from chessboard import display
from chessboard import images
import chess
from chess import engine
import pygame
myBoard = chess.Board()
myBoard.reset_board()
mydisplay = display.start(myBoard.board_fen())
squareLocations = list(display.board.Board.boardRect)
squareLocations.reverse()
columns = ["a","b","c","d","e","f","g","h"]
square_size = 50
class MyPiece(pygame.sprite.Sprite):
def __init__(self,picture):
super().__init__()
self.image = pygame.image.load(picture)
self.rect = self.image.get_rect()
def update(self):
self.rect.center = pygame.mouse.get_pos()
game_end = False
display_perm = True
row_check = True
piece_clicked = False
while not game_end:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_end = True
if pygame.mouse.get_pressed()[0] == 1:
mouse_x,mouse_y = pygame.mouse.get_pos()
display_perm = False
try:
if not piece_clicked:
piece_clicked,piece_png,square = get_piece_on_square()
mydisplay.blit(display.board.Board.wtile,square)
piece_image = piece_png + ".png"
piece_in_use = MyPiece(piece_image)
piece_group = pygame.sprite.Group()
piece_group.add(piece_in_use)
piece_group.update()
piece_group.draw(mydisplay)
pygame.display.update()
piece_in_use.update()
piece_group.update()
except Exception as e:
print(e)
if display_perm:
display.start(myBoard.board_fen())
我无法直接访问这些零件的表面,因此必须覆盖原始零件并制作可以使用的副本。
问题是,它没有按照更新功能的指示将我的作品移动到鼠标上。
有更好的方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)