if main_x < 0 or main_x > WIDTHWINDOW - CANH or main_y < 0 or main_y > 750 - CANH:
over = True
#điều kiện game over khi con rắn đâm vào tường
for i in range (1, n + 1):
if X[0] == X[i] and Y[0] == Y[i]:
over = True
if over:
if best_score < yourpoint:
best_score = yourpoint
text2 = font2.render(f'Your point: {yourpoint}', True, PINK)
text1 = font2.render(f'Best score: {best_score}', True, GREEN)
screen.blit(text2, (200, 250))
screen.blit(text1, (200, 350))
screen.blit(text3, (280, 450))
pygame.mixer.music.load('MarioGameOverNhacChuong-VA-4731955.mp3')
pygame.mixer.music.play(0)
pygame.display.update()
while over:
for event in pygame.event.get():
if event.type == QUIT:
done = False
over = False
if event.type == MOUSEBUTTONDOWN:
main_x = 600
main_y = 600
change_x = CANH
change_y = 0
n = 3
yourpoint = 0
over = False
X = [main_x, main_x - CANH, main_x - 2 * CANH, main_x - 3 * CANH]
Y = [main_y, main_y, main_y, main_y]
pygame.mixer.music.load('Top 10 Bản Nhạc EDM Gây Nghiện Hay Nhất ♫ (0 có thuốc giải).mp3')
pygame.mixer.music.play(0)
screen.blit(nen, (0, 0))
screen.blit(text, (100, 755))
screen.blit(FOOD, (FOOD_X, FOOD_Y))
pygame.draw.line(screen, PINK, (0, 750), (1000, 750), 3)
for i in range (0, n):
X[n - i] = X[n - i - 1]
Y[n - i] = Y[n - i - 1]
X[0] += change_x
Y[0] += change_y
main_x = X[0]
main_y = Y[0]
for i in range (0, n + 1):
pygame.draw.rect(screen, PINK, (X[i], Y[i], CANH, CANH)) #lệnh vẽ các hình vuông
pygame.display.flip()
clock.tick(FPS)
pygame.quit()
CANH là độ dài 1 cạnh ô vuông tạo thành con rắn
Mình lập trình game rắn săn mồi như thế này nhưng khi cho con rắn đâm vào tường vẫn có một ô đi ra khỏi viền. Minh đã ngồi tìm lỗi sai rồi nhưng ko được con rắn vẫn chỉ đi trong phạm vi các ô cho phép, ko vượt được ra ngoài nhưng khi nó đâm vào tường thì vẫn có 1 ô bị lồi ra như vậy. Mong các vị chỉ giáo