b站贪吃蛇视频
P01
import sys
import pygame
import os
os.environ["SDL_VIDEO_CENTERED"] = "1"
pygame.init()
pygame.display.set_caption("pysnake")
game_clock = pygame.time.Clock()
game_speed = 60
game_screen_width, game_screen_height = 640, 480
game_screen = pygame.display.set_mode((game_screen_width, game_screen_height))
game_bgcolor = 33, 66, 33
square_color = 33, 255, 33
square_x, square_y = 0, 0
square_size = 20
game_playing = True
while game_playing:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_playing = False
game_screen.fill(game_bgcolor)
pygame.draw.rect(game_screen, square_color, (square_x, square_y,
square_size, square_size))
pygame.display.flip()
game_clock.tick(game_speed)
pygame.quit()
sys.exit(0)
P02
import sys
import pygame
import os
os.environ["SDL_VIDEO_CENTERED"] = "1"
pygame.init()
pygame.display.set_caption("pysnake")
game_clock = pygame.time.Clock()
game_speed = 60
game_screen_width, game_screen_height = 640, 480
game_screen = pygame.display.set_mode((game_screen_width, game_screen_height))
game_bgcolor = 33, 66, 33
square_color = 33, 255, 33
square_x, square_y = 0, 0
square_size = 20
square_speed = 2
square_speed_x, square_speed_y = square_speed, 0
game_playing = True
while game_playing:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_playing = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
square_speed_x = 0
square_speed_y = -square_speed
elif event.key == pygame.K_DOWN:
square_speed_x = 0
square_speed_y = square_speed
elif event.key == pygame.K_LEFT:
square_speed_x = -square_speed
square_speed_y = 0
elif event.key == pygame.K_RIGHT:
square_speed_x = square_speed
square_speed_y = 0
square_x += square_speed_x
square_y += square_speed_y
if square_x < 0:
square_x =0
elif square_x > game_screen_width - square_size:
square_x = game_screen_width - square_size
if square_y < 0:
square_y =0
elif square_y > game_screen_height - square_size:
square_y = game_screen_height - square_size
game_screen.fill(game_bgcolor)
pygame.draw.rect(game_screen, square_color, (square_x, square_y,
square_size, square_size))
pygame.display.flip()
game_clock.tick(game_speed)
pygame.quit()
sys.exit(0)
P03
import sys
import pygame
import os
os.environ["SDL_VIDEO_CENTERED"] = "1"
pygame.init()
pygame.display.set_caption("pysnake")
game_clock = pygame.time.Clock()
game_speed = 120
game_screen_width, game_screen_height = 640, 480
game_screen = pygame.display.set_mode((game_screen_width, game_screen_height))
game_bgcolor = 0, 0, 0
game_linecolor = 33, 33, 33
square_color = 33, 255, 33
square_color2 = 33, 192, 33
CELL_SIZE = 20
square_rect = pygame.Rect(0, 0, CELL_SIZE, CELL_SIZE)
UP, DOWN, LEFT, RIGHT = (0, -1), (0, 1), (-1, 0), (1, 0)
square_direction = RIGHT
square_turn = RIGHT
game_running = True
while game_running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
square_turn = UP
elif event.key == pygame.K_DOWN:
square_turn = DOWN
elif event.key == pygame.K_LEFT:
square_turn = LEFT
elif event.key == pygame.K_RIGHT:
square_turn = RIGHT
if square_rect.x % CELL_SIZE == 0 and square_rect.y % CELL_SIZE == 0:
square_direction = square_turn
square_rect = square_rect.move(square_direction)
if square_rect.left < 0:
square_rect.left = 0
elif square_rect.right > game_screen_width:
square_rect.right = game_screen_width
if square_rect.top < 0:
square_rect.top = 0
elif square_rect.bottom > game_screen_height:
square_rect.bottom = game_screen_height
print("坐标:(%d, %d) 速度:(%d, %d)" % (square_rect.x, square_rect.y,
square_direction[0], square_direction[1]) )
game_screen.fill(game_bgcolor)
for i in range(CELL_SIZE, game_screen_width, CELL_SIZE):
pygame.draw.line(game_screen, game_linecolor, (i, 0), (i, game_screen_height))
for i in range(CELL_SIZE, game_screen_height, CELL_SIZE):
pygame.draw.line(game_screen, game_linecolor, (0, i), (game_screen_width, i))
game_screen.fill(square_color, square_rect)
game_screen.fill(square_color2, square_rect.inflate(-4, -4))
pygame.display.flip()
game_clock.tick(game_speed)
pygame.quit()
sys.exit(0)