VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python入门 >
  • 打砖游戏,详解每一行代码,历经三个小时解析,初学可看

打转游戏详解版

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

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

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

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 < self.radius:
            self.frequency += 1#接的次数加一
            if self.frequency == 5:#当满足频率5次的时候
                self.frequency = 0#归零
                self.move_x += self.move_x#速度加一倍 原来是1,现在就1+1=2,同理2+1=3
                self.move_y += self.move_y#同上
      



  

相关教程