流月飞星 发表于 2017-9-28 15:13:00

这就是闭包名字的由来??

森兔子 发表于 2017-10-8 10:59:38

暴击6666的闭包操作!学习学习程序思想!

紫夜之恋 发表于 2017-10-15 19:38:09

这个移动系统应该是走到边界之后继续会往回走。
我想问的是只用一个函数定义能达到效果吗?如果能的话,用闭包这种方式和那种方式有什么优势呢?

chaos_ 发表于 2017-10-15 22:51:20

很好理解呀,就是查看对象移动后是否超出范围,比如说,如果X为,若移动后为130,则给X赋值为70,若跑动为负数-20,则X为+20,其实坐标就好比以边界做镜像,Y同理;
除此,移动后的位置由direction、确定,X、Y坐标为方向*步数:
只是有点模糊的是,定义的direction,如何分解出的XY:direction、direction。

欣宝宝 发表于 2017-10-23 16:30:04

我想问下最后的 ; move = create();是什么意思,哪位大神回答一下,谢谢!

Amadeus1995 发表于 2017-11-25 20:09:46

感谢小甲鱼!

shawn竹肃 发表于 2017-11-28 06:09:35

这里的moving和move是不是笔误???难道Python还能自动识别时态666

小谢啊 发表于 2017-12-13 16:02:46

这样会好理解点吧

猜不中 发表于 2017-12-14 21:06:22

多看多学多练,还是能看懂点的

残~影 发表于 2017-12-18 17:36:46

看懂了,但是也就是仅仅看懂了。。。。。。。。。。。

willli[0] 发表于 2017-12-22 11:13:52

在这里我终于发现我不是最菜的{:10_256:}{:10_256:}{:10_256:}

Neeborngogo 发表于 2017-12-24 17:50:37

先评论再来看

王路ylu 发表于 2018-1-1 16:04:25

我只是想问,这截图是啥游戏呢

rover1 发表于 2018-1-5 14:28:05

pos_x与pos_y这两个参数是在creat函数中定义的形参,但是又在moving函数中申明这两个参数不是局部变量,因此程序在运行的过程中,第一次先将这两个参数值引用到moving函数中,然后在程序的运行过程中,这两个参数跟随函数的运行结果发生变化的,即不再受creat函数中初始定义值的影响,是否这就是闭包的正解呢?

stephenw123 发表于 2018-1-6 10:31:23

真的有趣

wside888 发表于 2018-1-9 11:54:57

def add9(x=9):
    def su(m,n):
      nonlocal x
      x=x+10
      return m+n+x
    return su

a=add9()
print(type(a))
print(a(1,2))
print(a(1,2))
print(a(1,2))
a=add9()
print(a(1,2))
print(a(1,2))
print(a(1,2))


所谓用闭包保护位置数据,是不是可以理解为,位置并没有以变量的形式体现出来,只是作为一个过程参数存在,所以没法直接被更改?

wenjiew 发表于 2018-1-12 21:51:27

请问一下 pos_x=legal_x - (new_x - legal_x) 这个是什么意思呢,如果X的坐标超过了它的范围,会怎么样?

zero月蚀的假面 发表于 2018-1-16 15:52:00

wenjiew 发表于 2018-1-12 21:51
请问一下 pos_x=legal_x - (new_x - legal_x) 这个是什么意思呢,如果X的坐标超过了它的范围,会怎么 ...

这个是求超过左边范围-100时的情况,超过范围会撞墙往回走,-110走到-100后会返回走-10,所以得-90

zero月蚀的假面 发表于 2018-1-16 16:21:55

move = creat()
print(move())
print(move())
print(move())
这里闭包的作用是避免移动位置重新归零,
即第一次移动(10,0)第二次在第一次基础上移动(10,70),第三次移动后为(0,70)
因为creat()函数中的(pos_x,pos_y)并没有被释放仍然存在,除非move被重新赋值

chijiahao 发表于 2018-1-18 18:11:12

学习学习
页: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20
查看完整版本: 游戏中的角色移动:闭包(closure)在实际开发中的作用