1181690925 发表于 2014-9-2 10:49:37

yu_wind 发表于 2014-1-11 16:22
请问
if new_x < legal_x:
            pos_x = legal_x - (new_x - legal_x)


那样就超出原点了,~这样做的目的是以原点为堆成点把负值转成正值~

xiao6641167 发表于 2014-9-7 22:10:24

:cry 看不懂啊

碎货 发表于 2014-9-24 14:07:21

还没看懂~!

划海听愿 发表于 2014-10-19 22:07:39

来给甲鱼哥哥灌个水,课程很棒,我想学python然后做算法的实现:ton:

戴宇轩 发表于 2014-11-1 17:20:26

表示勉强看懂。。。

wmhechaojun 发表于 2014-11-2 16:40:59

unkown

渗透小牛 发表于 2014-11-21 22:51:24

为什么我看了前20章 居然看不懂小甲鱼在写什么。。。。

微逻辑 发表于 2014-12-18 01:11:27

基本看懂了,会用还得多实践。

fengfengfeng 发表于 2014-12-20 20:56:56

学习学习

pynliu 发表于 2015-1-8 16:58:11

看不懂啊:mad::mad:

python001 发表于 2015-1-20 15:06:40

还需继续努力

python001 发表于 2015-1-29 11:21:54

感觉闭包有点难

oMakero 发表于 2015-2-2 16:40:02

一边画图一遍理解,自己动手再写一遍,现在感觉好简单。。通过这个实例,我发现闭包的一个好处就是,每次调用内部函数,都会从上一次的运行结果的基础上进行叠加。。以下是我修改的代码:
####################################
legal_x = [-100,100]#x轴的移动范围
legal_y = [-100,100]#y轴的移动范围

def create(pos_x = 0,pos_y = 0):
    def moving(direction,step):
      nonlocal pos_x,pos_y
      new_x = pos_x + direction*step
      new_y = pos_y + direction*step

      #检查移动是否越出x边界
      if new_x < legal_x:
          #如果超出左边界就跳到最右边继续往左走
            pos_x = legal_x + (new_x - legal_x)
      elif new_x > legal_x:
          #如果超出右边界就跳到最左边继续往右走
            pos_x = legal_x + (new_x - legal_x)
      else:
            pos_x = new_x

      #检查移动是否越出y边界
      if new_y < legal_y:
          #如果超出下边界就跳到最上边继续往下走
            pos_y = legal_y + (new_y - legal_y)
      elif new_y > legal_y:
          #如果超出上边界就跳到最下边继续往上走
            pos_y = legal_y + (new_y - legal_y)
      else:
            pos_y = new_y

      return pos_x,pos_y
    return moving
##################################

mvink2015 发表于 2015-2-3 07:44:38

看不懂了。

云里雾里19956 发表于 2015-2-18 17:46:29

学习学习

diuren126 发表于 2015-3-3 18:09:33

origin = (0, 0)一直沒用上啊,,

T--MAC 发表于 2015-3-8 20:19:23

鱼币在哪里

鲜的每日C 发表于 2015-3-15 00:03:08

高端

Rudolph_Browne 发表于 2015-3-24 16:36:45

{:1_1:}嘎嘎.

GHT 发表于 2015-4-5 16:10:38

顶起来,虽然看不懂
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: 游戏中的角色移动:闭包(closure)在实际开发中的作用