Python for循环不再从0开始
方法移动器工作正常,直到列表中的元素按与以前不同的顺序组织。此时在方法移动器中,z变量得到4,然后for循环(第39行)从1到4计数,而不是从0到3。你知道我怎样才能解决这个问题吗? 如果有人能解决这个问题,我会非常高兴Python for循环不再从0开始,python,pygame,Python,Pygame,方法移动器工作正常,直到列表中的元素按与以前不同的顺序组织。此时在方法移动器中,z变量得到4,然后for循环(第39行)从1到4计数,而不是从0到3。你知道我怎样才能解决这个问题吗? 如果有人能解决这个问题,我会非常高兴 import sys import pygame import random screenx = 500 screeny = 800 go = True speed = 0 playerx = 40 playery = 540 #zuerst xanfang dann
import sys
import pygame
import random
screenx = 500
screeny = 800
go = True
speed = 0
playerx = 40
playery = 540
#zuerst xanfang dann xende
gap = [200,300,300,400,100,200]
coordx = [0,300,0,400,0,200]
coordy = [-250,-250,-250,-250,-250,-250]
length = [120,120,120,120,120,120]
width = [200,200,300,100,100,300]
loops = 2
z = 2
pygame.init()
screen = pygame.display.set_mode([screenx,screeny])
screen.fill((0,0,0))
clock = pygame.time.Clock()
imgmid = pygame.image.load("figurschwarz.png")
def drawer():
for i in range(len(coordx)):
pygame.draw.rect(screen, (230,10,60), (coordx[i],coordy[i],width[i],length[i]), 0)
def mover():
global z,coordy
if loops % 250 == 0 and z<len(coordx)-1:
z = z+2
for x in range(0,z):
print (x)
if coordy[x] <= screeny+10:
coordy[x] += 2
else:
z -= 2
print ("pop")
for s in range(2):
for f in range(z):
print(f)
coordy[f] = coordy[f+1]
print (coordy)
coordy.pop(z+1)
coordy.pop(z)
print (coordy)
def collisiondetection():
global go
#player on the left or right wall
if playerx <= 0 or playerx+40 >= screenx:
go = False
while go == True:
loops += 1
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
speed = -2
if event.key == pygame.K_RIGHT:
speed = 2
screen.fill((0,0,0))
playerx += speed
screen.blit(imgmid, (playerx,playery))
mover()
drawer()
collisiondetection()
pygame.display.flip()
clock.tick(110)
print ("Dein Score ist " + str(loops))
导入系统
导入pygame
随机输入
屏幕X=500
屏幕Y=800
正确
速度=0
playerx=40
playery=540
#祖尔斯特·山芳·丹恩·森德
差距=[200300400100200]
coordx=[0300,0400,0200]
coordy=[-250,-250,-250,-250,-250,-250]
长度=[120120]
宽度=[200300100300]
循环=2
z=2
pygame.init()
screen=pygame.display.set_模式([screenx,screeny])
屏幕填充((0,0,0))
clock=pygame.time.clock()
imgmid=pygame.image.load(“figurschwarz.png”)
def drawer():
对于范围内的i(len(coordx)):
pygame.draw.rect(屏幕,(230,10,60),(坐标[i],坐标[i],宽度[i],长度[i]),0)
def mover():
全局z,coordy
如果循环%250==0和z如果您在
x的for
循环之前再放置一个print
def mover():
global z,coordy
if loops % 250 == 0 and z<len(coordx)-1:
print("loops = ".format(loops))
z = z+2
print("range(0,z) = {}".format(range(0,z))) #<----Put this for debugging
for x in range(0,z):
print ("x = {}".format(x))
if coordy[x] <= screeny+10: #<---------- Problem is here
coordy[x] += 2
else:
...do something...
def mover():
全局z,coordy
如果循环%250==0和z,您是否介意解释一下mover()
在游戏中做了什么?我正在看代码,但我想知道这个mover()
函数在做什么。感谢您的回答,mover()基本上是将障碍物从顶部移动到底部。