python pygame贪吃蛇

噢!我变长了!
今天,我来分享贪吃蛇的代码。我多加了一些效果,可能和原版不一样。

知识点

写代码,肯定要一些知识点吧,但知识点太多了,所以只将一部分,剩下的可以看我之前写的文章或自己查。虽然我之前只写过一篇关于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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值