鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[扩展阅读] 游戏中的角色移动:闭包(closure)在实际开发中的作用

    [复制链接]
发表于 2017-5-31 21:43:34 | 显示全部楼层
Trinity_lee 发表于 2016-5-13 21:15
python2.7如何使用nonlocal呀

nonlocal是3.0版本之后新增的,python2.7没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-8 19:29:51 | 显示全部楼层
甲鱼哥厉害了~看懂了;灰常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-21 09:36:35 | 显示全部楼层
天哪,学到现在就发现自己只是看懂,明白别人在干什么。理想和现实还是有差距。不管怎样也要把python啃下来。我只学一门还不行啊.......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-6-30 10:35:32 | 显示全部楼层
想想以后能做个小游戏就好高兴














想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-9 19:03:27 | 显示全部楼层
原来如此,不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-10 20:33:46 | 显示全部楼层
好难啊,对我这种初学者来说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 16:11:05 | 显示全部楼层
对照答案学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-30 19:06:51 | 显示全部楼层
程序倒是看懂了,就是不明白为什么要用闭包的写法,相比用普通函数有什么优势?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2017-8-6 02:42:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-7 10:49:39 | 显示全部楼层
感觉这个代码可以改进一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-9 10:32:50 | 显示全部楼层
懵逼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-11 10:00:14 | 显示全部楼层
慢慢学习吧
学到14课了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-17 22:26:40 | 显示全部楼层
喵喵喵~o( =∩ω∩= )m
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-21 16:36:05 | 显示全部楼层
恩,闭包果然是个厉害的东西啊,还不是太会用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-30 16:35:04 | 显示全部楼层
假装我看懂了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-1 23:25:24 | 显示全部楼层
origin=(0,0)
legal_x=[-100,100]#水平范围
legal_y=[-100,100]#垂直范围

def create(pos_x=origin[0],pos_y=origin[1]):
    def moving(direction,step):
        nonlocal pos_x,pos_y
        new_x=pos_x+direction[0]*step[0]
        new_y=pos_y+direction[1]*step[1]
        if new_x<legal_x[0]:
            pos_x=legal_x[0]-(new_x-legal_x[0])
        elif new_x>legal_x[1]:
            pos_x=legal_x[1]-(new_x-legal_x[1])
        else:
            pos_x=new_x
        if new_y<legal_y[0]:
            pos_y=legal_y[0]-(new_y-legal_y[0])
        elif new_y>legal_y[1]:
            pos_y=legal_y[1]-(new_y-legal_y[1])
        else:
            pos_y=new_y
        return(pos_x,pos_y)
    return moving

a=create()
print('向上一步,向左三步:',a([1,-1],[1,3]))

小甲鱼的只能走正方形,或者直线,可以稍微将step改为list 可以设置两个方向的步进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-3 19:26:14 | 显示全部楼层
不觉明历
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-16 20:05:37 From FishC Mobile | 显示全部楼层
没人玩过这个大话战国吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-17 17:32:55 | 显示全部楼层
理解为坐标存在move里 不动move 坐标就一直记着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-25 15:55:46 | 显示全部楼层
我竟然成功的看懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-8 20:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表