class MatchstickMan:
# 初始化函数,用于设置火柴人的初始值
def __init__(self, name, health, attack):
self.name = name
self.health = health
self.attack = attack
# 定义一个函数,用于旅羡嫌让火柴人攻派念击其他火柴人
def attack_other(self, other):
# 如果对方的血量大于攻击力,则扣除对方的血量,否则将对方的血量设为 0
if other.health >self.attack:
other.health -= self.attack
else:
other.health = 0
# 创建两个火柴人对象
player1 = MatchstickMan("player1", 10, 3)
player2 = MatchstickMan("player2", 10, 3)
# 让 player1 攻击 player2,打击 player2 的血量
player1.attack_other(player2)
# 打印 player2 的剩余血量
print(player2.health) # 输出:7
刚好我也遇到这个问题,题主情况是否是当小人跳上平台后,小人就静止不动了?如果是这种情况则可以解决。
题主应该是直接用的书上的代码昌游消,但是我后面检查发现有一个错误:
for sprite in self.game.sprites:
if sprite==self:
continue
sprite_co=sprite.coords()
if top and self.y<0 and collided_top(co,sprite_co):
self.y=-self.y
top=False
if bottom and self.y>0 and collided_bottom(self.y,\
co,sprite_co):
self.y=sprite_co.y1-co.y2#使火柴人刚好落到平台上
if self.y<0:
self.y=0
bottom=False
top=False
if bottom and falling and self.y==0 \
and co.y2<self.game.canvas_height\
and collided_bottom(1,co,sprite_co):
falling=False
if left and self.x<0 and collided_left(co,sprite_co):
self.x=-2 #此处原本为self.x=0
left=False
if right and self.x>0 and collided_right(co,sprite_co):
self.x=2 #此处原本为self.x=0
right=False
错误之处就在上面标注的地方,原因就是书上将小人跳上平台后的磨空移动速度设置为0了,所以会导致小人站在平台上不动。
改了之后游戏可以运行,直接关闭游戏窗口会出现耐知题主发出的错误,但没关系了,游戏已经可以跑了。。。。
希望对你有用。
A: 你可以使用用 JavaScript、HTML 和 CSS 可以来构建一个火柴人大战大作战的游戏。首先,你需要创建一个 HTML 网页,这网页应该包含两个玩家的位置和一堆火柴人。
然后你需要编写举橘 JavaScript 代码,这仿指些代码将用来响应用户输入,并让火柴人动起来。
最后,你可以使用 CSS 代码来给网页加上美化—它将是一堆正大团线条,很可能使用不同的颜色来区分 if 两位玩家。
由于这是一个复杂的游戏,因此你也可以使用 JavaScript 模块管理程序,例如 require.js 或 browserify。这将使你能够使代码变得更易于维护和编写。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)