Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3代码没有像我预期的那样工作_Python_Python 3.x_Turtle Graphics - Fatal编程技术网

Python3代码没有像我预期的那样工作

Python3代码没有像我预期的那样工作,python,python-3.x,turtle-graphics,Python,Python 3.x,Turtle Graphics,当我在做一个简单的python海龟模块游戏时,遇到了一个问题。游戏的重点是让你(一个红方块)避开一个障碍物(蓝色圆圈)。每次蓝色圆圈到达屏幕底部时,它都应该重置为顶部。当这种情况发生时,圆圈重置一秒钟,然后再次传送回地面。这是我的密码 #Import modules import turtle import time import random #Create window screen = turtle.Screen() screen.title("Street Raiders") scre

当我在做一个简单的python海龟模块游戏时,遇到了一个问题。游戏的重点是让你(一个红方块)避开一个障碍物(蓝色圆圈)。每次蓝色圆圈到达屏幕底部时,它都应该重置为顶部。当这种情况发生时,圆圈重置一秒钟,然后再次传送回地面。这是我的密码

#Import modules
import turtle
import time
import random

#Create window
screen = turtle.Screen()
screen.title("Street Raiders")
screen.bgcolor("black")
screen.screensize(400, 400)

#Draw border
borderPen = turtle.Turtle()
borderPen.color("white")
borderPen.pensize(3)
borderPen.speed(0)
borderPen.penup()
borderPen.hideturtle()
borderPen.setposition(-100, -100)
borderPen.pendown()

for sides in range(4):
    borderPen.fd(200)
    borderPen.lt(90)

#Create player
playerCar = turtle.Turtle()
playerCar.speed(0)
playerCar.color("red")
playerCar.shape("square")
playerCar.setheading(90)
playerCar.penup()
playerCar.setposition(0, -75)
playerX = playerCar.xcor()

#Define player movement functions
def move_left():
    global playerX
    if playerX < -85 or playerX == -85:
        playerX = -75
        playerCar.setx(playerX)
    else:
        playerX -= 10
        playerCar.setx(playerX)

def move_right():
    global playerX
    if playerX > 85 or playerX == 85:
        playerX = 75
        playerCar.setx(playerX)
    else:
        playerX += 10
        playerCar.setx(playerX)
#Allow player movement
turtle.listen()
turtle.onkey(move_left, "Left")
turtle.onkey(move_right, "Right")

#Create obstacles
obstacleY = 75
obstacle = turtle.Turtle()
obstacle.speed(0)
obstacle.shape("circle")
obstacle.color("blue")
obstacle.penup()
obstacle.setposition(random.randint(-80, 81), obstacleY)

#Move obstacles
alive = True
while True:
    if alive:
        obstacle.sety(75)
        obstacle.setx(random.randint(-80, 81))
        for moves in range(30):
            time.sleep(0.1)
            obstacleY -= 5
            obstacle.sety(obstacleY)
else:
    print("GAME OVER... TRY AGAIN")
#导入模块
进口海龟
导入时间
随机输入
#创建窗口
screen=turtle.screen()
屏幕标题(“街头掠夺者”)
屏幕颜色(“黑色”)
屏幕。屏幕大小(400400)
#划界
borderPen=海龟。海龟()
颜色(“白色”)
边缘性养老金(3)
边界笔速度(0)
borderPen.penup()
borderPen.hideturtle()
边界笔设置位置(-100,-100)
borderPen.pendown()
对于范围(4)内的侧面:
borderPen.fd(200)
borderPen.lt(90)
#创建玩家
playerCar=海龟。海龟()
playerCar.速度(0)
玩家卡颜色(“红色”)
玩家卡形状(“方形”)
播放卡设置标题(90)
playerCar.penup()
播放卡设置位置(0,-75)
playerX=playerCar.xcor()
#定义玩家移动功能
def向左移动()
全球playerX
如果playerX<-85或playerX==-85:
playerX=-75
playerCar.setx(playerX)
其他:
playerX-=10
playerCar.setx(playerX)
def向右移动()
全球playerX
如果playerX>85或playerX==85:
playerX=75
playerCar.setx(playerX)
其他:
playerX+=10
playerCar.setx(playerX)
#允许玩家移动
乌龟,听着
乌龟。上键(向左移动,“左”)
乌龟.安基(向右移动,“向右”)
#制造障碍
障碍=75
障碍物=海龟。海龟()
障碍物。速度(0)
障碍物形状(“圆”)
障碍物颜色(“蓝色”)
障碍物
障碍物设置位置(随机随机随机(-80,81),障碍物)
#移动障碍物
活着=真
尽管如此:
如果活着:
塞蒂(75岁)
障碍物.setx(random.randint(-80,81))
对于范围内的移动(30):
睡眠时间(0.1)
障碍-=5
障碍物,塞蒂(障碍物)
其他:
打印(“游戏结束…重试”)
`


如果你知道它为什么不起作用,请回复。谢谢

在游戏循环中,您没有将变量
obstacleY
的值重置到屏幕顶部;相反,您暂时在此处设置障碍物的位置,然后它恢复其路线:

while True:
    if alive:
#         obstacle.sety(75)               # <-- replace this
        obstacleY = 75                    # <-- with that
        obstacle.setx(random.randint(-80, 81))
        for moves in range(30):
            time.sleep(0.1)
            obstacleY -= 5
            obstacle.sety(obstacleY)
else:
    print("GAME OVER... TRY AGAIN")
为True时:
如果活着:
#障碍。塞蒂(75)#
应该是

while alive:
    obstacle.sety(75)
    obstacle.setx(random.randint(-80, 81))
    for moves in range(30):
        time.sleep(0.1)
        obstacleY -= 5
        obstacle.sety(obstacleY)
else:
    print("GAME OVER... TRY AGAIN")
糟糕的调试器也是如此。找出它为什么不起作用的最好方法是调试它,因为您有代码并且知道要用它做什么。
while alive:
    obstacle.sety(75)
    obstacle.setx(random.randint(-80, 81))
    for moves in range(30):
        time.sleep(0.1)
        obstacleY -= 5
        obstacle.sety(obstacleY)
else:
    print("GAME OVER... TRY AGAIN")