Skip to main content

Chinsese version of pygame for grasspy

Project description

zwpygame

介绍

pygame游戏编程的草蟒汉化版本,带来强大易懂的中文游戏编程体验.

安装方法

`python -m pip install -U grasspy-pygame

使用说明

#童年的回忆:掌上赛车游戏

 随机数 导入 随机整数
导入 游戏派

游戏派.初始化()
游戏派.显示.设置标题栏("掌上赛车")
屏幕尺寸 = (320, 400)
黑色 = (0, 0, 0)
白色 = (250, 250, 250)
蓝色 = (0, 255, 255)
红色 = (255, 0, 0)
绿色 = (0, 255, 0)
橙色 = (255, 128, 64)
暗绿色 = (0, 64, 0)
网格宽度 = 20
网格高度 = 20

#   初始化游戏状态:1/游戏开始界面 2/游戏进行中 3/游戏结束
状态 = 1
障碍物列表 = []
斑马线列表 = []
得分 = 0

加速度 = 4 
时钟 = 游戏派.时间.时钟类()
屏幕 = 游戏派.显示.设置模式(屏幕尺寸, 0, 32)
 障碍物类:

    套路 __初始化__(自身):

        自身.通道_x = 随机整数(0,屏幕尺寸[0] + 1)
        自身.y = 0
        自身.通道宽度 = 随机整数(4,10) * 网格宽度
        自身.间距 = 随机整数(10,10) * 网格高度
        自身.高度 = 随机整数(5,20) / 10 * 网格高度
        自身.右位置 = (0,0)
        自身.左位置 = (0,0)
        自身.颜色 = 橙色
        自身.底部y = 自身.y + 自身.高度

    套路 下沉(自身):
        自身.y += 1 * 加速度

    套路 绘制(自身):

        如果 自身.通道_x == 0:
            自身.右位置 = (自身.通道宽度,自身.y)
            游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.右位置,(屏幕尺寸[0]-自身.通道宽度,自身.高度)))
        或如 自身.通道_x == 屏幕尺寸[0]:
            自身.左位置 = (0,自身.y)
            游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.左位置,(屏幕尺寸[0]-自身.通道宽度,自身.高度)))
        或如 自身.通道_x + 自身.通道宽度 > 屏幕尺寸[0]:
            自身.左位置 = (0,自身.y)
            自身.右位置 = (自身.通道_x,自身.y)
            游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.左位置,(自身.通道_x-自身.通道宽度,自身.高度)))
            游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.右位置,(屏幕尺寸[0]-自身.通道宽度,自身.高度)))
        否则:
            自身.左位置 = (0,自身.y)
            自身.右位置 = (自身.通道_x + 自身.通道宽度,自身.y)
            游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.左位置,(自身.通道_x,自身.高度)))
            游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.右位置,(屏幕尺寸[0]-自身.右位置[0],自身.高度)))     

    套路 更新(自身):
        全局 得分,状态
        自身.下沉()
        如果 自身.y == 自身.间距:
            障碍物列表.追加(障碍物类())
        如果 自身.y > 屏幕尺寸[1]:
             障碍物列表[0]
            得分 += 1
        底部y = 自身.y + 自身.高度

        汽车位置x = 汽车.x
        汽车位置y = 汽车.y
        汽车宽度 = 汽车.宽度

        如果 汽车位置y <= 底部y <= 汽车位置y+3*网格高度:

            如果 自身.通道_x == 0:
                如果 自身.通道_x<= 汽车位置x <= 自身.通道_x+自身.通道宽度-汽车宽度:
                    无操作
                否则:
                    状态 = 3
            或如 自身.通道_x == 屏幕尺寸[0]:
                如果 屏幕尺寸[0]-自身.通道宽度<=汽车位置x<=屏幕尺寸[0]-汽车宽度:
                    无操作
                否则:
                    状态 = 3
            或如 自身.通道_x + 自身.通道宽度 > 320:
                如果 自身.通道_x - 自身.通道宽度<= 汽车位置x <= 自身.通道_x-汽车宽度:
                    无操作
                否则:
                    状态 = 3
            否则:
                如果 自身.通道_x <= 汽车位置x <= 自身.通道_x + 自身.通道宽度 - 汽车宽度:
                    无操作
                否则:
                    状态 = 3

障碍物列表.追加(障碍物类())

 汽车类():
    套路 __初始化__(自身):
        自身.宽度 = 网格宽度 * 3
        自身.高度 = 网格高度 * 4
        自身.x = 屏幕尺寸[0] / 2 -(网格宽度 + 网格宽度 / 2)
        自身.y = 屏幕尺寸[1] - 网格高度 * 4
        自身.速度 = 5
        自身.颜色 = 绿色

    套路 左移(自身):
        自身.x -= 2 * 自身.速度
        自身.x = 最大值(0,自身.x)

    套路 右移(自身):
        自身.x += 2* 自身.速度
        自身.x = 最小值(屏幕尺寸[0] - 网格宽度 * 3,自身.x) 

    套路 更新位置(自身):
        点1 = (自身.x+网格宽度,自身.y)
        点2 = (自身.x,网格高度+自身.y)
        点3 = (自身.x+网格宽度,自身.y+网格高度)
        点4 = (自身.x+网格宽度*2,自身.y+网格高度)
        点5 = (自身.x+网格宽度,自身.y+网格高度*2)
        点6 = (自身.x,自身.y+网格高度*3)
        点7 = (自身.x+网格宽度,自身.y+网格高度*3)
        点8 = (自身.x+网格宽度*2,自身.y+网格高度*3)
        点列表 = [点1,点2,点3,点4,点5,点6,点7,点8]
        返回 点列表
    
    套路 绘制(自身,点列表):
           点列表:
            游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(,(网格宽度,网格高度)))

汽车 = 汽车类()

 斑马线类():

    套路 __初始化__(自身):

        自身.高度 = 5 * 网格高度
        自身.宽度 = 3 * 网格高度
        自身.x,自身.y = (0,0)
        自身.中间区块x = 屏幕尺寸[0]/2 - 网格宽度/2
        自身.中间区块y = 自身.y + (网格高度+网格高度/2) 
    
    套路 绘制(自身):
        左虚线x = 屏幕尺寸[0]/2 - (网格宽度+网格宽度/2) 
        右虚线x = 屏幕尺寸[0]/2 + (网格宽度+网格宽度/2) 
        虚线高 = 自身.y + 5 * 网格高度

         i  范围(自身.y,虚线高+1,网格高度 * 2):
            游戏派.绘画.直线(屏幕,白色,(左虚线x,i),(左虚线x,i+网格高度))
            游戏派.绘画.直线(屏幕,白色,(右虚线x,i),(右虚线x,i+网格高度))

        中间区块宽度 = 网格宽度
        中间区块高度 = 网格高度 * 2
        游戏派.绘画.矩形(屏幕,白色,游戏派.区块类((自身.中间区块x,自身.中间区块y),(中间区块宽度,中间区块高度)))

    套路 更新(自身): 
        自身.y += 1* 加速度
        自身.中间区块y = 自身.y + (网格高度+网格高度/2)
        如果 自身.y == 自身.高度:
            斑马线列表.追加(斑马线类())
        如果 自身.y > 屏幕尺寸[1]:
             斑马线列表[0]

斑马线列表.追加(斑马线类())

 游戏主体类():

    套路 检测退出():
        全局 状态,得分,汽车,障碍物列表
         事件  游戏派.事件.获取():
            如果 事件.类型 == 游戏派.离开:
                游戏派.卸载()
                游戏派.退出()
            如果 事件.类型 == 游戏派.KEYDOWN:
                如果 事件. == 游戏派.K_ESCAPE:
                    游戏派.卸载()
                    游戏派.退出()
                或如 事件. == 游戏派.K_SPACE:
                    如果 状态 == 1:
                        状态 = 2
                    或如 状态 == 3:
                        得分 = 0
                        障碍物列表 =[]
                        汽车 = 汽车类()
                        障碍物列表.追加(障碍物类())
                        状态 = 2

    套路 开始菜单():
        字体 = 游戏派.字体.系统字体("STLITI",25)
        字体表层 = 字体.描绘("空格开始,a键向左,d键向右",,蓝色)
        屏幕.贴图(字体表层,(屏幕尺寸[0]/2-字体表层.获取宽度()/2,屏幕尺寸[1]/2-字体表层.获取高度()/2))
    
    套路 结束菜单():
        得分字体 = 游戏派.字体.系统字体("STLITI",30)
        重启字体 = 游戏派.字体.系统字体("STLITI",30,5)
        得分字体表层 = 得分字体.描绘("成绩:%d" % 得分, , 红色)
        重启字体表层 = 重启字体.描绘(u"重新开始", , 红色)

        区块宽度 = 最大值(得分字体表层.获取宽度(),重启字体表层.获取宽度())
        区块高度 = 得分字体表层.获取高度()+重启字体表层.获取高度()

        区块x = 屏幕尺寸[0]/2-区块宽度 /2
        区块y = 屏幕尺寸[1]/2-区块高度 /2

        游戏派.绘画.矩形(屏幕,绿色,游戏派.区块类((区块x,区块y),(区块宽度,区块高度)))
        屏幕.贴图(得分字体表层,(屏幕尺寸[0]/2-得分字体表层.获取宽度()/2,区块y))
        屏幕.贴图(重启字体表层,(屏幕尺寸[0]/2-重启字体表层.获取宽度()/2,区块y+得分字体表层.获取高度()))

    只要 :
        检测退出()

        如果 状态 == 1:
            开始菜单()
        如果 状态 == 2:
            汽车点列表 = 汽车.更新位置()
            按键 = 游戏派.键盘.获取按键()
            如果 按键[4]:
                汽车.左移()
                汽车点列表 = 汽车.更新位置()
            或如 按键[7]:
                汽车.右移()
                汽车点列表 = 汽车.更新位置()
 
            屏幕.填充(黑色)

             斑马线  斑马线列表:
                斑马线.更新()
                斑马线.绘制()
                
             障碍物  障碍物列表:
                障碍物.更新()
                障碍物.绘制()

            汽车.绘制(汽车点列表)
        如果 状态 == 3:
            结束菜单()

        时钟.设置帧率(60)
        游戏派.显示.更新()

游戏主体类()

avatar

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grasspy-pygame-0.2.212.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grasspy_pygame-0.2.212-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file grasspy-pygame-0.2.212.tar.gz.

File metadata

  • Download URL: grasspy-pygame-0.2.212.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.9

File hashes

Hashes for grasspy-pygame-0.2.212.tar.gz
Algorithm Hash digest
SHA256 73b5f275e4116c6d855969f9f4879bb18c83d70636b1c69df32e6461a4bb01a0
MD5 7a6cde0929eb5aabcaa67d6eed55c482
BLAKE2b-256 d76c10a743304fc7ea51cdf185d3a32c849c107509a8eac4a47410c9665e4a74

See more details on using hashes here.

File details

Details for the file grasspy_pygame-0.2.212-py3-none-any.whl.

File metadata

File hashes

Hashes for grasspy_pygame-0.2.212-py3-none-any.whl
Algorithm Hash digest
SHA256 c94faf2ef84ff80aca47af8052ac54248f10a030700a9584429a60006f27a131
MD5 d6ad82d93a1d7f44fa41ba623d6b82e6
BLAKE2b-256 572cadcaca4fa54c9b44f811f3aeabcd656117c7d60de248914a3a26afe1fdd4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page