新西兰天维网社区

 找回密码
登录  注册
搜索
热搜: 移民 留学
查看: 671|回复: 0
打印 上一主题 下一主题

[其他] 儿童启蒙游戏编程教程PyGame - 第5课:条件判断语句 [复制链接]

Rank: 10Rank: 10Rank: 10

升级  50.13%

UID
231216
热情
2517
人气
2881
主题
24
帖子
72
精华
0
积分
2752
阅读权限
30
注册时间
2010-5-25
跳转到指定楼层
楼主
发表于 2023-9-21 11:31:41 |只看该作者 |倒序浏览 微信分享
本帖最后由 你好世界 于 2023-9-21 10:33 编辑

------------------------------- 转载自:http://kidscando.co.nz ----------------------------------

上节课中我们看到笑脸图片可以从左往右走,并最终消失在右侧边框,就再也没有回来了(消失的它)。

原因很简单,left = left + 1,左边间距一直在增加,最终超过游戏窗户大小,如果我们想让它走到300后,再往回走,并且碰到左边边框后再往右走,这样来来回回,该如何做呢?如图:





最终效果的网页展示可以在这里看到
实现的代码如下:

left=0
direction=1

def runIt(screen, smile):      
    global left, direction        


    if left>=300:        
        direction=-1 #方向往左移动   
    elif left==0:        
        direction=1 #方向往右移动            


    left=left+direction   
    screen.blit(smile, (left,50))   

这里我们用到了新的语句 if …. elif …. 它的完全语法是:

if A:
     XXXX
elif B:
     YYYY
else:
    ZZZZ

A和B在这里是逻辑判断表达式。(如:left>=300 或 left == 0)
如果条件A满足,则做XXXX,不然的话测试是否条件B满足,如果满足则做YYYY,如果A和B的条件都不满足,则做ZZZZ。这就是条件判断语句。


对于数值来说比较常用的逻辑判断符号是>= (大于或等于),== (等于),<=(小于或等于)



我们添加了新的全局变量direction用来指明是向左还是向右移动,它的初始值是1。

程序流程如下:
  • 判断是否 left 是否大于等于 300 (图像移动到了或超过了我们设置的最大距离),如果是则改变direction方向,给它赋值-1。
  • 如果上述判断不成立(left 不大于或等于300),则再测试是否 left 等于 0 (图像碰到了左边框),如果是则改变direction方向,给它赋值1。
  • left = left + direction ,left的位置由当前left的位置加上direction的值,如果direction是-1,则相当于left=left-1,图像左边距会减少,图像显得往做移动,如果direction是1,则相当于left=left+1,图像左边距增加,图像显得往右移动。
  • 再从第一步开始循环。


Python语言使用 # 作为注释语句开始标志,任何出现在 # 后的语句都不会被Python解释执行,注释语句的好处是可以添加一些代码的说明,方便以后的阅读,如果是多人开发游戏,添加注释可以更快更好的帮助你的同伴了解程序的意义。





使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版| 联系论坛客服| 广告服务| 招贤纳士| 新西兰天维网

GMT+13, 2024-11-26 14:20 , Processed in 0.013691 second(s), 13 queries .

Powered by Discuz! X2 Licensed

Copyright 2001- Sky Media Limited, All Rights Reserved.

回顶部