我试图使游戏中的子弹向光标方向射击,直到撞到窗口边缘。目前我的子弹会朝向光标飞行,但一旦到达光标位置就会停止。
我发现如果我的光标在屏幕外面,子弹可以飞到边缘,所以我尝试修改用来计算子弹移动的光标位置,使其始终处于窗口外部,通过乘法和加法实现,但我无法完全满足我的要求。
win = pygame.display.set_mode((1000, 800))
pos = pygame.mouse.get_pos()
keys = pygame.key.get_pressed()
def shoot(bullets):
for bullet in bullets:
if bullet.x > 0 and bullet.x <1000 and bullet.y > 0 and bullet.y < 800:
pygame.draw.circle(win, (255, 255, 255), (round(bullet.x) ,round(bullet.y)),5)
diffX = bullet.targetX - bullet.x
diffY = bullet.targetY - bullet.y
ang = math.atan2(diffY,diffX)
bullet.x += math.cos(ang)*bullet.vel
bullet.y += math.sin(ang)*bullet.vel
if keys[pygame.K_SPACE] and RegBullet.canShoot:
RegBullet.canShoot = False
regBullets.append(RegBullet(win,x=p1.getX(),y=p1.getY(),targetX=pos[0],targetY=pos[1]))
pause = threading.Thread(target=cool_down,args=(1,))
pause.start()