为什么我的扫雷方块没有点击右键?
Why are my minesweeper sqaures not clicking the right button?
我的代码一直有问题。我正在尝试制作扫雷游戏。如您所知,扫雷器在顶部有一个重置按钮和一个计时器,因此我将列表从顶部开始 50 ,则点击下方几行的方块。
我怎样才能避免这种情况?有没有办法让它开始更低而不鼠标点击也更低?或者我需要更改哪些值才能适应它?
谢谢
import pygame
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
WIDTH = 20
HEIGHT = 20
MARGIN = 5
grid = []
for row in range(10):
grid.append([])
for column in range(10):
grid[row].append(0)
print(grid)
pygame.init()
WINDOW_SIZE = [255, 265]
screen = pygame.display.set_mode(WINDOW_SIZE)
pygame.display.set_caption("Array Backed Grid")
done = False
clock = pygame.time.Clock()
# -------- Main Program Loop -----------
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.MOUSEBUTTONDOWN:
pos = pygame.mouse.get_pos()
column = pos[0] // (WIDTH + MARGIN)
row = pos[1] // (HEIGHT + MARGIN)
grid[row][column] = 1
print("Click ", pos, "Grid coordinates: ", row, column)
screen.fill(BLACK)
for row in range(10):
for column in range(10):
color = WHITE
if grid[row][column] == 1:
color = GREEN
pygame.draw.rect(screen,
color,
[(MARGIN + WIDTH) * (column) + MARGIN,
50+(MARGIN + HEIGHT) * row + MARGIN,
WIDTH,
HEIGHT])
clock.tick(60)
pygame.display.flip()
pygame.quit()
您的网格 Y 从 50 开始,因此在确定行时从鼠标位置减去 50。
row = (pos[1]-50) // (HEIGHT + MARGIN)
同时将 window 大小增加 50 以查看整个网格。
WINDOW_SIZE = [255, 315]
我的代码一直有问题。我正在尝试制作扫雷游戏。如您所知,扫雷器在顶部有一个重置按钮和一个计时器,因此我将列表从顶部开始 50 ,则点击下方几行的方块。
我怎样才能避免这种情况?有没有办法让它开始更低而不鼠标点击也更低?或者我需要更改哪些值才能适应它?
谢谢
import pygame
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
WIDTH = 20
HEIGHT = 20
MARGIN = 5
grid = []
for row in range(10):
grid.append([])
for column in range(10):
grid[row].append(0)
print(grid)
pygame.init()
WINDOW_SIZE = [255, 265]
screen = pygame.display.set_mode(WINDOW_SIZE)
pygame.display.set_caption("Array Backed Grid")
done = False
clock = pygame.time.Clock()
# -------- Main Program Loop -----------
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.MOUSEBUTTONDOWN:
pos = pygame.mouse.get_pos()
column = pos[0] // (WIDTH + MARGIN)
row = pos[1] // (HEIGHT + MARGIN)
grid[row][column] = 1
print("Click ", pos, "Grid coordinates: ", row, column)
screen.fill(BLACK)
for row in range(10):
for column in range(10):
color = WHITE
if grid[row][column] == 1:
color = GREEN
pygame.draw.rect(screen,
color,
[(MARGIN + WIDTH) * (column) + MARGIN,
50+(MARGIN + HEIGHT) * row + MARGIN,
WIDTH,
HEIGHT])
clock.tick(60)
pygame.display.flip()
pygame.quit()
您的网格 Y 从 50 开始,因此在确定行时从鼠标位置减去 50。
row = (pos[1]-50) // (HEIGHT + MARGIN)
同时将 window 大小增加 50 以查看整个网格。
WINDOW_SIZE = [255, 315]