17345604293 发表于 2022-1-25 17:24:52

为什么 move 变量不被重新赋值,相应的 pos_x 和 pos_y 就不会初始化呢?

tianhaocc 发表于 2022-2-19 13:36:51

假装看了半天假装看懂了

beking99 发表于 2022-2-19 17:34:20

这是劝退的节奏,玄玄乎乎的。倒是讲讲为什么?

ASM023 发表于 2022-3-1 21:24:31

希望有机会看懂

ye610502 发表于 2022-4-3 16:44:53

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


以我简陋的数学知识告诉你,这根本不可能等于呀

LIUBOLIUHAO 发表于 2022-5-20 22:55:34

666

wqc1519 发表于 2022-7-3 16:59:14

太难了,啥时候能学会啊

sunache 发表于 2022-7-6 10:51:40

闭包有的难哦

little–little 发表于 2022-7-8 12:14:48

有点迷迷

LIUBOLIUHAO 发表于 2022-7-13 16:40:44

666

易改乌江水 发表于 2022-8-2 23:04:39

只是演示方法吧,感觉这个边缘的代码好像很容易在墙上鬼畜呢

晨曦初露 发表于 2022-8-8 17:24:11

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


这里的逻辑是如果走到边界就往回走,你说的逻辑是走到边界就不走了。

晨曦初露 发表于 2022-8-8 17:57:51

guokai83524 发表于 2014-3-17 13:05
看不懂最后的调用30-33行,为什么move里面可以这样带参数,不理解

move = create() 调用create()函数,返回的是moving的闭包函数,所以move变量实际是一个函数。因此可以对move这个函数传递实参进行调用。

晨曦初露 发表于 2022-8-8 17:58:48

代码有1处可以优化,另外用对象进行改写。拙作附上。

def get_pos(logic_pos, legal):
    """
    判断逻辑位置是否超出边界,如果超出则后退,返回实际的位置
    :param logic_pos: 走位后的逻辑位置
    :param legal: 列表,包含两个值,画面的边界
    :return: 返回实际的位置
    """
    true_pos = 0
    if logic_pos < legal:
      true_pos = legal - (logic_pos - legal)
    elif logic_pos > legal:
      true_pos = legal - (logic_pos - legal)
    else:
      true_pos = logic_pos

    return true_pos


class Create:

    def __init__(self, origin=):
      self.pos_x = origin
      self.pos_y = origin

    def moving(self, direction, step):
      legal_x = [-100, 100]
      legal_y = [-100, 100]
      self.pos_x = direction * step + self.pos_x
      self.pos_y = direction * step + self.pos_y

      self.pos_x = get_pos(self.pos_x, legal_x)
      self.pos_y = get_pos(self.pos_y, legal_y)

      return self.pos_x, self.pos_y


new_create = Create()
print(f"向右移动10步后,位置是:{new_create.moving(, 10)} ")
print(f"向上移动130步后,位置是:{new_create.moving(,130)}")
print(f"向左移动10步后,位置是:{new_create.moving([-1,0],10)}")

瞿佳 发表于 2022-8-11 07:39:47

这个游戏和小甲鱼和鱼那个游戏啊好像

li_wg 发表于 2022-8-16 10:50:15

这个用法对初学者的我来说好像太高端了点。。。

小白py懂 发表于 2022-9-1 15:17:10

学习了学习了,虽然不懂,继续女里

LIUBOLIUHAO 发表于 2022-10-19 18:01:10

代码看懂了但还是不明白闭包的用处

18975173112 发表于 2023-5-4 08:55:10

这个太高端了我怎么一点也看不懂啊

Raspboys 发表于 2023-5-30 23:07:34

1
页: 15 16 17 18 19 20 21 22 23 24 [25] 26
查看完整版本: 游戏中的角色移动:闭包(closure)在实际开发中的作用