噢!我变长了!
今天,我来分享贪吃蛇的代码。我多加了一些效果,可能和原版不一样。
知识点
写代码,肯定要一些知识点吧,但知识点太多了,所以只将一部分,剩下的可以看我之前写的文章或自己查。虽然我之前只写过一篇关于pygam的,可能没啥用。
判断
以下题目可能不能理解,会逐一解释
按钮判断
按钮判断指的是能判断鼠标是否按下屏幕中的按钮
pygame.draw.rect(self.playSurface, [255, 255, 255], [20, 350, 150, 75]) #画一个矩形,参数:屏幕变量,颜色,坐标与大小。
举个例子,上面是画出来的按钮,坐标范围:x: 20 ~ 170 (20 + 150), y: 350 ~ 425 (350 + 75)。
当然,鼠标移动或点击都属于事件,所以判断语句要写在
for event in pygame.event.get(): #遍历所有事件的列表,用 pygame.event模块。
里面。
if event.type == MOUSEBUTTONDOWN: #判断事件类型是否是鼠标是否被点击。
x, y = pygame.mouse.get_pos() #获取鼠标的坐标。
if 20 < x < 170 and 350 < y < 425: #判断鼠标坐标是否在按钮范围内。
print("click")
按键判断
按键判断指的是能判断键盘按键是否被按下
举个例子,按下左箭头或a键输出 “left”。
按键也属于事件,所以判断语句也要写在
for event in pygame.event.get(): #遍历所有事件的列表,用 pygame.event模块。
里面。
if event.type == KEYDOWN: #判断事件类型是否是按下键盘。
if event.key == K_LEFT or event.key == K_a: 判断按下的键是否为右箭头或a键。
print("left")
添加
以下部分皆可按字面意思理解
文字添加
基本格式:
font = pygame.font.Font(type, size) #设置文字字体、大小。
font = font.render(txt, True, color) #提供要写的文字,是否抗锯齿边与颜色。
screen.blit(font, rect)#写在屏幕上
图片添加
基本格式:
bg = pygame.image.load('background.jpg') #提供路径。
screen.blit(bg, rect) #画在屏幕上。
音乐添加
基本格式:
self.m = pygame.mixer.music
self.m.load("glasses.wav") #填写路径
self.m.play() #播放
源代码
import pygame, sys
from pygame.locals import *
import random
class Snake():
def __init__(self):
"""初始化方法"""
pygame.init()
self.playSurface = pygame.display.set_mode((640, 480)) # 设置界面
pygame.display.set_caption("贪吃蛇游戏") # 设置标题
self.redColor = pygame.Color(255, 0, 0) # 红色 方块
self.blackColor = pygame.Color(0, 0, 0) # 背景颜色
self.whiteColor = pygame.Color(255, 255, 255) # 蛇本体颜色
self.greyColor = pygame.Color(100, 100, 100)
self.snakeSegments = [[100, 100], [80, 100], [60, 100]] # 蛇身体
self.snakePosition = [100, 100]
self.foodPosition = [300, 300] # 食物坐标 食物是 20*20 小方块
self.direction = "right"
self.FPS = pygame.time.