【发布时间】:2019-07-17 08:48:46
【问题描述】:
我有一个python海龟程序,如下所示。
我希望能够在乌龟触黑或触线时停止游戏,但我在网上找不到任何帮助!!!
import logging
from datetime import datetime
import time
from turtle import *
import winsound
#while True:
# player1 = input("enter player1 name\n")
# break
#while True:
# player2 = input("enter player2 name\n")
# print("Please click on window titled pacman")
# break
setup(600, 600)
Screen()
title("Rendering")
horse2 = Turtle()
horse2.shape("triangle")
horse2.color("blue")
#making the map
map1 = Turtle()
map1.color("black")
map1.shape("square")
map1.forward(100)
map1.left(90)
map1.forward(50)
map1.left(180)
map1.forward(50)
map1.right(90)
map1.forward(100)
map1.right(90)
map1.forward(50)
map1.penup()
map1.left(90)
map1.forward(50)
map1.pendown()
map1.forward(50)
map1.right(90)
map1.forward(50)
map1.left(90)
map1.forward(50)
map1.penup()
map1.forward(50)
map1.left(90)
map1.pendown()
map1.forward(50)
map1.forward(50)
map1.left(90)
map1.forward(50)
map1.right(90)
map1.forward(50)
map1.left(90)
map1.forward(50)
map1.penup()
map1.forward(50)
map1.pendown()
map1.right(90)
map1.forward(50)
map1.forward(50)
map1.right(90)
map1.forward(200)
map1.forward(40)
map1.right(90)
map1.forward(400)
map1.right(90)
map1.forward(500)
map1.right(90)
map1.forward(450)
map1.penup()
map1.forward(50)
map1.pendown()
map1.right(90)
map1.forward(500)
map1.right(90)
map1.forward(100)
map1.right(90)
map1.forward(100)
map1.right(90)
map1.forward(50)
map1.left(180)
map1.forward(50)
map1.penup()
map1.forward(50)
map1.forward(50)
map1.pendown()
map1.left(90)
map1.forward(50)
map1.left(180)
map1.forward(100)
map1.left(180)
map1.forward(150)
map1.right(180)
map1.forward(150)
map1.penup()
map1.forward(50)
map1.forward(100)
map1.right(90)
map1.pendown()
map1.forward(150)
map1.right(90)
map1.forward(100)
map1.forward(50)
map1.left(90)
map1.forward(50)
map1.right(180)
map1.penup()
map1.forward(100)
map1.penup()
map1.forward(200)
map1.forward(50)
map1.left(90)
map1.forward(10)
map1.right(90)
map1.pendown()
map1.forward(50)
map1.right(90)
map1.forward(50)
map1.left(90)
map1.forward(50)
map1.right(90)
map1.forward(50)
map1.left(90)
map1.penup()
map1.forward(50)
#making the map
showturtle()
hideturtle()
horse2.penup()
horse2.goto(-250, -100)
title("Pacman")
def k3():
horse2.right(90)
def k2():
horse2.left(90)
if horse2.xcor() > 250:
print(player2+" wins")
logging.basicConfig(filename=("bobobwinner.log"), filemode='w', format='%(name)s - %(message)s')
logging.warning(player2+' won')
def k1():
horse2.forward(20)
onkey(k1, "w")
onkey(k2, "a")
onkey(k3, "d")
#onkey(k4, "Left")
#onkey(k5, "Down")
listen()
mainloop()
我没有错误消息,但是我一次又一次地失败了。请有人帮忙。我很清楚海龟是一个非常有限的游戏引擎,所以如果这不可能,有人知道我如何编写自己的模块来补充海龟中的颜色检测。
【问题讨论】:
-
turtle没有检测碰撞的功能。turtle构建在模块tkinter及其小部件Canvas之上,这些小部件具有一些功能来检查对象是否与其他对象重叠,但很难将它与使用海龟创建的线条一起使用。如果你用白色和黑色块构建它并且玩家会从一个块移动到另一个块,那么你可以保留黑色块的位置并检查玩家的位置是否不在黑色块上(并将其移回) -
下次最好证明minimal reproducible example。
标签: python colors turtle-graphics detection