【佛山网址之家-佛山网址大全】佛山实用网址,搜索大全尽在fs218.com(Foshan)欢迎您!
网站首页
新闻报刊
数码产品
文学小说
财经股市
娱乐明星
幽默笑话
医疗保健
政府组织
法律资讯
男士女性
编程设计
科技IT
军事资讯
家庭理财
两性健康
汽车资讯
营养美食
人才市场
考试考研
艺术爱好
星座命理
美女帅哥
体育资讯
时装时尚
少年儿童
宠物花鸟
您现在所在位置:主页 > 编程设计 >

用python和pygame游戏编程入门-弹球

发布时间:2020-09-22  来源:未知  作者:木木

下面是一个弹球的动画程序,角色小球碰到边缘要发生反弹,这是这个程序的重点。

与Scratch不同的是,Pygame中的坐标原点在窗口的左上角,X轴水平向右,逐渐增加;y轴垂直向下,逐渐增加,如图所示,也就是说如果将角色y坐标增加,就会向下移动,这是跟Scratch相反的。

用python和pygame游戏编程入门-弹球

speed = [1, 1],这个变量表示球的速度,你可能会有疑问,为什么速度不是一个数?[1,1]这两个值分别表示在x轴和y轴上的增量。比如球初始位置为(0,0),按照这个速度移动一次后位置就变为了(1,1),就是x坐标加1,y坐标加1。因此这不仅仅是一个速度,它还确定了球移动的方向,也就是我们前面讲到的向量。

图片素材->>ball.png下载(保存后修改名称为ball.png)

后面我们还会在这个程序的基础上增加更多的效果,继续巩固我们之前学到的知识。

import pygame, sys  # 引入pygame sys	
pygame.init()  # 初始化  对pygame内部各功能模块进行初始化创建及变量设置,默认调用
size = width, height = 600, 400
speed = [1,1]
BLACK = 0, 0, 0
screen = pygame.display.set_mode(size)  
pygame.display.set_caption("弹球")  # 设置窗口标题
ball = pygame.image.load("img/ball.png")  # pygame.image.load(filename) 将filename路径下的图像载入游戏,支持13种常用图片格式
ballrect = ball.get_rect()              # surface对象 ball.get_rect() pygame使用内部定义
fps = 300  # Frame per second 每秒帧率参数
fclock = pygame.time.Clock()  # pygame.time.Clock() 创建一个Clock对象,用于操作时间surface对象表示所有载入的图像,其中.get_rect()方法返回一个覆盖图像的矩形(图像的外接矩形)rect对象rect中top, bottom, left, right表示上下左右,width, height表示宽度,高度
while True:  # 执行死循环
    for event in pygame.event.get():  # 从事件队列中取出事件,并从队列中删除该事件
        if event.type == pygame.QUIT:  # pygame.QUIT是Pygame中定义的退出时间常量
            sys.exit()      # sys.exit()用于退出结束游戏并退出
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
               sys.exit()   # sys.exit()用于退出结束游戏并退出

    if pygame.display.get_active() :     #当显示器上处于活动状态时返回True,进一步半段后可以暂停游戏,改变响应模式等
        ballrect = ballrect.move(speed[0],speed[1])  # ballrect.move(x,y) 矩形移动一个偏移量(x,y)x,y为整数
    if ballrect.left < 0 or ballrect.right > width:
            speed[0] = -speed[0] 
    if ballrect.top < 0 or ballrect.bottom > height:
            speed[1] = -speed[1]  # 碰壁后速度取反

    screen.fill(BLACK)
    screen.blit(ball, ballrect)     # screnen,blit(src,dest)将图像绘制在另一个图像上,即将src绘制到dest位置上,通过rect对象引导对壁球的绘制
    pygame.display.update()      # 对显示窗口进行刷新,默认窗口全部重绘
    fclock.tick(fps)    # clock.tick(framerate) 控制帧速度,即窗口刷新速度。

本站内容未经许可,禁止任何网站及个人进行转载。




上一篇:用python和pygame游戏编程入门-鼠标设备
下一篇:没有了

今日推荐

如何向年轻人“安利
9月22日电 22日,人文互动探访体验真人秀《…[详细]
能从满月吹到头七!
客户端北京9月22日电(任思雨)如果能掌握一…[详细]
胡兵挑战24小时不间
9月22日电 9月20日晚7点,胡兵如约入…[详细]
电视剧《香山叶正红
北京9月22日电 9月21日,重大革命历史题材…[详细]
抗疫题材剧《在一起
北京9月22日电 9月22日,“时代报告剧”《…[详细]
影院复工60天:1.5
北京9月22日电 (记者 应妮)7月20日影院复工…[详细]
《极限挑战》,别挑
客户端北京9月21日电(记者 张曦) 21日,东…[详细]
《八佰》登顶全球票
客户端北京9月21日电(袁秀月)“这个时候投…[详细]
用python和pygame游
下面是一个弹球的动画程序,角色小球碰到边…[详细]
税惠为笔,俯身碧野
本网讯 记者姚文迟 通讯员姚佳倩报道:秋分…[详细]
讲好榜样故事,发扬
本网讯 记者严婉明报道:为广泛动员群众关…[详细]
捐出月饼1200盒,三
本网讯 记者朱广晖,通讯员苏莹报道:9月21…[详细]
友情链接:
  • 广美举办学院当代教育国际研讨会 主题聚焦“抽象艺术
  • 第十届中国卫星导航年会五月下旬将在北京举办
  • 长三角“G60科创走廊”:冲破“堵点”找“融点”
  • 角膜上皮干细胞移植给患者带来光明
  • 万博bet官网
  • 时时彩注册送47元彩金
  • 大乐透历史开奖号码
  • 白金会娱乐集团
  • 网上真钱扎金花
  • 888真人备用网址
  • 老虎机作弊器
  • 福彩3d谜语