所以我尝试用pygame创建一个简单的游戏,它有点像“砖块破碎机”,只是没有砖块。你拿一块木板,试着击球,这样球就不会掉到木板下面。当球碰到木板时,它应该朝相反的方向反弹。它对第一个球非常有效,但是当我尝试引入第二个球(当你的比分是10分时),第二个球遵循所有的条件,除了它忽略了木板(只是穿过它)。以下是我怀疑问题所在的代码:
for j in range(0, len(ball_x)):
ball_y[j] += ball_vely[j]
ball_x[j] += ball_velx[j]
if ball_y[j] <= 0:
ball_vely[j] *= -1
if ball_y[j] + 55 > y and ball_y[j] + 40 < y and ball_x[j] > x and ball_x[j] < x + 160:
ball_vely[j] *= -1
score += 1
if ball_x[j] > x + 75:
ball_velx[j] = 10
ball_velx[j] *= 1 + (ball_x[j] - x + 75)/60
elif ball_x[j] < x + 75:
ball_velx[j] = 10
ball_velx[j] *= -1 * (1 + (x + 75 - ball_x[j])/60)
if ball_x[j] - 25 <= 0 or ball_x[j] + 45 >= 680:
ball_velx[j] *= -1
if ball_y[j] > 795:
lives -= 1
ball_y
和ball_x
,而ball_velx
和ball_vely
是速度(它们都存储在一个列表中)。当第二个球掉到屏幕下面时,生命就被夺走了,这对我来说毫无意义。我试着摆脱for循环,而是编写了两次代码,但都没有成功。任何帮助都将不胜感激
目前没有回答
相关问题 更多 >
编程相关推荐