我写了一个使乌龟在盒子里四处移动的代码。如果您按某些键(例如g表示增长,s表示收缩),则尝试编写一部分以更改其大小。
但是,我觉得我使它成长和收缩的方式不是很好。每当乌龟达到默认大小并按收缩时,都会收到一条错误消息,指出其stetch_len
/ stretch_wid
不得为0
。
我尝试使用if
来制作它,以使其在尺寸为1时不会收缩,但是我无法使其正常工作。我认为这可能与我缩小它的方法有关,但是我不确定。
与半相关,我设置了一个按钮,将其按下时将其重置为默认值。但是,如果我使乌龟变大,它的收缩程度不会太大。我做得越大,默认值似乎越大。同样,我认为它与我用来更改尺寸的方法有关,但我不确定。
import turtle
import os
#Creates the window for the game
wn = turtle.Screen()
wn.bgcolor("cyan")
wn.title("Game Test")
#Creates the background for the game
border_pen = turtle.Turtle()
border_pen.speed(0)
border_pen.color("black")
border_pen.penup()
border_pen.setposition(-250,-250)
border_pen.pendown()
border_pen.pensize(1)
for side in range(4):
border_pen.fd(500)
border_pen.lt(90)
border_pen.hideturtle()
#Creates the turtle
player = turtle.Turtle()
player.color("black")
player.shape("square")
player.pensize(2)
#player.penup()
player.setposition(0, 0)
player.setheading(90)
player.shapesize(1)
playerspeed = 10
# This resets the player to its default, beginning state
def reset():
player.setposition(0, 0)
player.setheading(90)
player.shapesize(1)
# Makes the character grow larger
def grow():
size = player.turtlesize()
increase = tuple([1 + num for num in size])
player.turtlesize(*increase)
return
#Makes the character shrink
def shrink():
size = player.turtlesize()
decrease = tuple([-1 + num for num in size])
if player.turtlesize() == 1:
return
else:
player.turtlesize(*decrease)
return
# Prints the characters coordinates in a seperate window from the game
def place():
b, c = player.pos()
print("\n")
print(b, ",", c)
# These are the keys you push to activate different things
# The movement uses a number pad, which make programming diagonal keys easier.
turtle.listen()
turtle.onkeypress(reset, "5")
turtle.onkey(grow, "g")
turtle.onkey(shrink, "s")
turtle.onkey(place, "p")
input("Press any key to exit...")
答案 0 :(得分:0)
我使用Toast.makeText(this, "text", Toast.LENGTH_SHORT).setGravity(Gravity.TOP, 0, 0).show();
引起了Uriya Harpeness的注意。我将其切换为turtlesize
,这使我可以更正代码。
为解决此问题,我使用了shapesize
并将变量设置为a,b,c而不是大小。这使我可以添加到每个值,然后将新值设置为shapesize
。
对于复位功能,我只需要写shapesize
。
player.shapesize(1, 1, 1)