【发布时间】:2022-11-19 17:38:17
【问题描述】:
我和我的伙伴正在用 Python 制作一个类似僵尸的射击游戏,我们几乎已经完成了基本的游戏玩法,除了一个问题,我们无法找到一种方法让一只乌龟在被另一只乌龟触碰后消失。我们有 3 只乌龟,一只用于我们的玩家模型,一只用于子弹,一只用于僵尸,我们正在努力做到这一点,以便当子弹龟接触到僵尸乌龟或在僵尸乌龟的近距离区域内时,僵尸乌龟消失或至少移动位置。无论我们尝试了什么都没有用,如果有人可以提供帮助,我们将不胜感激。
import turtle as trtl
wn = trtl.Screen()
p= trtl.Turtle()
g= trtl.Turtle()
z= trtl.Turtle()
b = trtl.Turtle()
counter=trtl.Turtle()
font_setup = ("Arial", 20, "normal")
p.penup()
b.penup()
b.hideturtle()
pSpeed = 30
bSpeed = 30
trtl.register_shape("appleleft.gif")
trtl.register_shape("appleright.gif")
trtl.register_shape("mario.gif")
trtl.register_shape("mario2.gif")
trtl.register_shape("bullet.gif")
trtl.register_shape("bulletleft.gif")
trtl.register_shape("bosszombie.gif")
p.shape("mario.gif")
b.shape("bullet.gif")
z.shape("bosszombie.gif")
z.goto(200,0)
zx = z.xcor()
zy = z.ycor()
bx = b.xcor()
by = b.ycor()
wn.bgpic("mars.gif")
def shoot():
b.goto(p.position())
b.showturtle()
b.forward(400)
b.hideturtle()
b.goto(p.position())
if b.xcor() == z.xcor():
z.clear()
def move_left():
x = p.xcor() - pSpeed
if x < -280:
x= -280
p.setx(x)
p.shape("mario2.gif")
b.shape("bulletleft.gif")
b.setheading(180)
def move_up():
y = p.ycor() + pSpeed
if y > 280:
y=280
p.sety(y)
def move_down():
y = p.ycor() - pSpeed
if y < -280:
y= -280
p.sety(y)
def move_right():
x = p.xcor() + pSpeed
if x > 280:
x=280
p.setx(x)
p.shape("mario.gif")
b.shape("bullet.gif")
b.setheading(0)
wn.onkeypress(move_left, "a")
wn.onkeypress(move_up, "w")
wn.onkeypress(move_down, "s")
wn.onkeypress(move_right, "d")
wn.onkeypress(shoot, "l")
wn.listen()
wn.mainloop()
当子弹龟碰到它时,我们为僵尸龟发出了明确的命令,但它不起作用,我们甚至试图让它去随机位置,但没有任何效果。
【问题讨论】:
标签: python