我正在玩pygame,并且正在制作记忆游戏。在我的记忆游戏中,我需要在屏幕的中下方有一个小菜单,并在屏幕顶部有一个播放器列表。游戏管理员将在屏幕的左上角输出消息。卡片所在的可玩板应位于屏幕中央,左右两侧留有少量空白,距顶部和底部约200像素。(例如,如果屏幕的宽度和高度为1200 x 800,可玩板的宽度应为2到1998,高度应为200到600。我对我的想法做了一个屏幕截图:我已经提出了带有卡的可滚动板的想法,尽管现在已经过硬编码了,但是我最需要的不是代码,因为我很难弄清楚它应该如何工作。可玩的面板(屏幕截图上的游戏面板)应通过键盘(向上,向右,向下,向左箭头)移动。我想做的是允许每列多于4张卡,每行多于12张卡,这样一来,当卡数多于12 x 4时,可以移动游戏板,但不退出标记为红色的正方形在屏幕截图上(所以它是可滚动的表面)。我想将可滚动区域限制为1200的宽度和400 px的高度,但是以某种方式该区域只能在红色区域内滚动。如果那行不通或另有计划,是否有其他方法可以不同地注册点击?假设当我以菜单区域在游戏板上的方式移动键并单击菜单时,我也不想单击菜单下的卡片。有什么方法可以锁定菜单下的内容?在下面添加代码示例:from pygame import *import sysinit()screen_width = 1200screen_height = 800screen = display.set_mode((screen_width, screen_height))board_width = 2000board_height = 1000playable_board = Surface((board_width, board_height))playable_board = playable_board.convert()screen.fill((255, 255, 255))#draw.rect(playable_board, (125, 125, 125), (2, 200, board_width, board_height))for x in range(0, 50): draw.rect(playable_board, (100, 100, 100), (x * 100 + 5, 200, 90, 90)) draw.rect(playable_board, (100, 100, 100), (x * 100 + 5, 310, 90, 90)) draw.rect(playable_board, (100, 100, 100), (x * 100 + 5, 420, 90, 90)) draw.rect(playable_board, (100, 100, 100), (x * 100 + 5, 530, 90, 90)) # draw.rect(playable_board, (100, 100, 100), (x * 100 + 5, 640, 90, 90))point_x = 0point_y = 0point_change = -30animationTimer = time.Clock()endProgram = Falsewhile not endProgram: for e in event.get(): pass key_pressed = key.get_pressed() if e.type == QUIT: endProgram = True if e.type == MOUSEBUTTONUP: mouse_x, mouse_y = e.pos display.set_caption(('Coordinates: ' + str(mouse_x + abs(point_x)) + 'x' + str(mouse_y + abs(point_y)))) draw.rect(playable_board, (50, 200, 50), (mouse_x + abs(point_x), mouse_y + abs(point_y), 10, 10))
添加回答
举报
0/150
提交
取消