import pygame, sys, random, time from pygame.locals import * black_colour = pygame.Color(28, 56, 20) white_colour = pygame.Color(255, 144, 20) red_colour = pygame.Color(255,34 , 20) grey_colour = pygame.Color(150, 150, 150)
def GameOver(gamesurface): ? ?? ? ? GameOver_font = pygame.font.SysFont("MicrosoftYaHei", 16) ? ?? ? ? GameOver_colour = GameOver_font.render('GameOver', True, grey_colour)#只能英文 ? ?? ? ? GameOver_location = GameOver_colour.get_rect() ? ? GameOver_location.midtop = (310, 200) ? ?? ? ? gamesurface.blit(GameOver_colour, GameOver_location) ? ?? ? ? pygame.display.flip() ? ?? ? ? time.sleep(5) ? ?? ? ? pygame.quit() ? ?? ? ? sys.exit()
def main(): ? ?? ? ? pygame.init() ? ? pygame.time.Clock() ? ? ftpsClock = pygame.time.Clock() ? ?? ? ? gamesurface = pygame.display.set_mode((640, 480)) ? ?? ? ? pygame.display.set_caption('tanchishe snake') ? ?? ? ? snakeposition = [100, 100] ? ?? ? ? snakelength = [[100, 100], [80, 100], [60, 100]] ? ?? ? ? square_purpose = [300, 300] ? ?? ? ? square_position = 1 ? ?? ? ? derection = "right" ? ? change_derection = derection ? ?? ? ? while True: ? ? ? ?? ? ? ? ? for event in pygame.event.get(): ? ? ? ? ? ? if event.type == QUIT: ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? pygame.quit() ? ? ? ? ? ? ? ? sys.exit() ? ? ? ? ? ? elif event.type == KEYDOWN: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if event.key == K_RIGHT or event.key == ord('d'): ? ? ? ? ? ? ? ? ? ? change_derection = "right" ? ? ? ? ? ? ? ? if event.key == K_LEFT or event.key == ord('a'): ? ? ? ? ? ? ? ? ? ? change_derection = "left" ? ? ? ? ? ? ? ? if event.key == K_UP or event.key == ord('w'): ? ? ? ? ? ? ? ? ? ? change_derection = "up" ? ? ? ? ? ? ? ? if event.key == K_DOWN or event.key == ord('s'): ? ? ? ? ? ? ? ? ? ? change_derection = "down" ? ? ? ? ? ? ? ? if event.key == K_ESCAPE: ? ? ? ? ? ? ? ? ? ? pygame.event.post(pygame.event.Event(QUIT)) ? ? ? ?? ? ? ? ? if change_derection == 'left' and not derection == 'right': ? ? ? ? ? ? derection = change_derection ? ? ? ? if change_derection == 'right' and not derection == 'left': ? ? ? ? ? ? derection = change_derection ? ? ? ? if change_derection == 'up' and not derection == 'down': ? ? ? ? ? ? derection = change_derection ? ? ? ? if change_derection == 'down' and not derection == 'up': ? ? ? ? ? ? derection = change_derection ? ? ? ? ? ? ? ? if derection == 'left': ? ? ? ? ? ? snakeposition[0] -= 20 ? ? ? ? if derection == 'right': ? ? ? ? ? ? snakeposition[0] += 20 ? ? ? ? if derection == 'up': ? ? ? ? ? ? snakeposition[1] -= 20 ? ? ? ? if derection == 'down': ? ? ? ? ? ? snakeposition[1] += 20 ? ? ? ?? ? ? ? ? snakelength.insert(0, list(snakeposition)) ? ? ? ?? ? ? ? ? if snakeposition[0] == square_purpose[0] and snakeposition[1] == square_purpose[1]: ? ? ? ? ? ? square_position = 0 ? ? ? ? else: ? ? ? ? ? ? snakelength.pop() ? ? ? ?? ? ? ? ? if square_position == 0: ? ? ? ? ? ?? ? ? ? ? ? ? x = random.randrange(1, 32) ? ? ? ? ? ? y = random.randrange(1, 24) ? ? ? ? ? ? square_purpose = [int(x * 20), int(y * 20)] ? ? ? ? ? ? square_position = 1 ? ? ? ?? ? ? ? ? gamesurface.fill(black_colour) ? ? ? ? for position in snakelength: ? ? ? ? ? ? pygame.draw.rect(gamesurface, white_colour, Rect(position[0], position[1], 20, 20)) ? ? ? ? ? ? pygame.draw.rect(gamesurface, red_colour, Rect(square_purpose[0], square_purpose[1], 20, 20)) ? ? ? ?? ? ? ? ? pygame.display.flip() ? ? ? ?? ? ? ? ? if snakeposition[0] < 0 or snakeposition[0] > 620: ? ? ? ? ? ? GameOver(gamesurface) ? ? ? ? if snakeposition[1] < 0 or snakeposition[1] > 460: ? ? ? ? ? ? GameOver(gamesurface) ? ? ? ? for snakebody in snakelength[1:]: ? ? ? ? ? ? if snakeposition[0] == snakebody[0] and snakeposition[1] == snakebody[1]: ? ? ? ? ? ? ? ? GameOver(gamesurface) ? ? ? ?? ? ? ? ? ftpsClock.tick(8) if __name__ == "__main__": ? ? main() ?
|