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
一只高傲的鹤
发表于 2023-6-9 17:40:14
为什么超出边界要这个运算?
pos_y = legal_y - (new_y - legal_y)
没有理由只是想这么做?
一只高傲的鹤
发表于 2023-6-9 17:42:21
yu_wind 发表于 2014-1-11 16:55
我估计是我没看明白咋么移动的,
我的理解是, x轴上原来-80 往左挪30变成-110然后 if的结果是-90 ...
你这个解释说得通,撞墙往回走,总结精辟
方方T
发表于 2023-7-18 17:30:06
原来中间那一坨都是在写撞墙反弹,哭了,看了三遍
狂奔的梦想
发表于 2023-12-18 16:51:34
1
LMJ123456789
发表于 2024-7-26 17:15:01
好复杂啊,有点看不懂