您当前的位置: 首页 >  游戏

川川菜鸟

暂无认证

  • 5浏览

    0关注

    969博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

打砖游戏,详解每一行代码,历经三个小时解析,初学可看

川川菜鸟 发布时间:2020-11-25 02:06:48 ,浏览量:5

打转游戏详解版

网上只要搜一下“打砖游戏”,基本会看到很多一样的代码,主要是注释也很少,对于python不熟悉的人来说,根本看不懂,只会拿来运行着玩玩。 于是我历经三个小时,把代码几乎每一行都注释了一遍!真是呕心沥血!!

点赞加个关注好吗?以后会有更多的分享,我是川川,大二计算机,有问题可以留言或者加我好友询问,我也是第一次阅读这个代码根据我对代码的理解以及效果的分析写的注释,有不对的地方还请指正。

还是看看效果图: 在这里插入图片描述

ok,上代码!!!复制粘贴就能运行,还请好好看下注释,你是来学习的不是来白嫖代码玩这种小游戏的。 如果有注释不好的地方还请指正!谢谢!!

# 导入模块
import pygame#导入pygame专门游戏的模块
from pygame.locals import *#导入pygame.locals的全部函数
import sys, random, time, math#导入sys访问模块,random随机模块,time时间模块,math数学模块


class GameWindow(object):
    '''创建游戏窗口类'''

    def __init__(self, *args, **kw):
        self.window_length = 600#窗口高度
        self.window_wide = 500#窗口宽度
        # 绘制游戏窗口,设置窗口尺寸
        self.game_window = pygame.display.set_mode((self.window_length, self.window_wide))
        # 设置游戏窗口标题
        pygame.display.set_caption("CatchBallGame")#标题CatchBallGame
        # 定义游戏窗口背景颜色参数
        self.window_color = (135, 206, 250)#RGB配色,做背景颜色

    def backgroud(self):
        # 绘制游戏窗口背景颜色
        self.game_window.fill(self.window_color)#调用上面的RGB自定义颜色


class Ball(object):
    '''创建球类'''

    def __init__(self, *args, **kw):
        # 设置球的半径、颜色、移动速度参数
        self.ball_color = (255, 215, 0)#球颜色,RGB
        self.move_x = 1#横向速度
        self.move_y = 1#纵向速度
        self.radius = 10#球半径10

    def ballready(self):
        # 设置球的初始位置、
        self.ball_x = self.mouse_x#球位置为鼠标的横坐标位置
        self.ball_y = self.window_wide - self.rect_wide - self.radius#纵坐标以球心位置为准
        # 绘制球,设置反弹触发条件
        pygame.draw.circle(self.game_window, self.ball_color, (self.ball_x, self.ball_y), self.radius)#绘制圆形的球,调用上面定义的窗口,球颜色,球的位置和半径

    def ballmove(self):
        # 绘制球,设置反弹触发条件
        pygame.draw.circle(self.game_window, self.ball_color, (self.ball_x, self.ball_y), self.radius)#同上 代码一样
        self.ball_x += self.move_x#反弹,横坐标增加
        self.ball_y -= self.move_y#纵坐标不断减小
        # 调用碰撞检测函数
        self.ball_window()#碰撞的是墙还是砖块
        self.ball_rect()#球的反应是怎样的(可以这么理解)
        # 每接5次球球速增加一倍
        if self.distance  520:  #窗顶到球心距离大于520,那就说明已经不在挡板上了。窗顶到球心距离等于520才是一直在挡板上。
            self.gameover = self.over_font.render("Game Over", False, (0, 0, 0))#定义一个游戏结束,False就表示失败,
            self.game_window.blit(self.gameover, (100, 130))
            self.over_sign = 1  #游戏结束标识


class Rect(object):
    '''创建球拍类'''

    def __init__(self, *args, **kw):  #初始化  def __init__()这种都代表是初始化
        # 设置球拍颜色参数
        self.rect_color = (255, 0, 0)#RGB控制挡板(球拍)颜色
        self.rect_length = 100#球拍的长度为100
        self.rect_wide = 10#球拍高度(宽度)

    def rectmove(self):
        # 获取鼠标位置参数
        self.mouse_x, self.mouse_y = pygame.mouse.get_pos()#获取鼠标横纵坐标
        # 绘制球拍,限定横向边界
        if self.mouse_x >= self.window_length - self.rect_length // 2:#如果鼠标横坐标大于了球拍最两侧中心位置
            self.mouse_x = self.window_length - self.rect_length // 2#那么就回归到球心最右侧位置 窗口宽度减去球拍一半的距离
        if self.mouse_x             
关注
打赏
1665165634
查看更多评论
0.0518s