如何在Python Turtle中进行碰撞

问题描述 投票:0回答:1

我正在尝试进行碰撞,当turtle_en接触turtle_h时,游戏结束。由于某种原因,海龟距离不起作用。我尝试使用两只乌龟的距离,但另一只乌龟只是滑过。我不知道该怎么办了,除非不可能。

import turtle
from random import randint

#Bg

#Introduction
print("Welcome to Turtle Chase!")
player_name = input("What would you like to be called? ")
print("What color do you want your diver to be?")
player_color = input("Choose from red, blue, yellow, or purple: ")
print("Let's Begin!")


#Hero
turtle_h = turtle.Turtle()
turtle_h.penup()
turtle_h.shapesize(2)
turtle_h.setx(-75)
turtle_h.fillcolor(player_color)

#Enemy
turtle_en = turtle.Turtle()
turtle_en.penup()
turtle_en.shape("turtle")
turtle_en.setx(-200)
turtle_en.shapesize(3)
turtle_en.fillcolor("green")

#Goal
turtle_goals = turtle.Turtle()
turtle_goals.penup()
turtle_goals.setx(200)
turtle_goals.sety(-10)
turtle_goals.pendown()
turtle_goals.circle(25)

while True:
  num1 = randint(2, 9)
  num2 = randint(2, 9)
  product = num1 * num2
  response = input(f'What is {num1} * {num2}? (Type "exit" to quit): ')

  if response.lower() == "exit":
      print(f"Goodbye, {player_name}!")
      break

  if response.isdigit():
      if int(response) == product:
          print("Correct!")
          turtle_h.forward(35)
      else:
          print("Incorrect!")
          turtle_en.forward(35)
  else:
      print("Please enter a valid integer answer.")
  
python collision-detection turtle-graphics python-turtle
1个回答
0
投票

我在 while 循环中添加了一个简单的距离检查器,用于检查每只海龟的 x 坐标。

你必须为你的选择设置一个“半径”(我用的是50)。

这是一段代码,添加后可以为您提供所需的结果:

  x1 = turtle_h.xcor()
  x2 = turtle_en.xcor()
  print('possies:', x1, x2, 'diff=', abs(x2 - x1))
  if abs(x2 - x1) < 50:
      print('turtles have collided...')
      break

这实际上是一个非常有趣的游戏。之后我玩了几轮。

干得好...

© www.soinside.com 2019 - 2024. All rights reserved.