Как исправить код пули, чтобы при стрельбе второй пули в другом направлении это не меняло направления первой пули? - PullRequest
0 голосов
/ 24 апреля 2019

У меня проблема с тем, что когда я стреляю одной пулей в определенном направлении, а затем стреляю второй пулей в другом направлении, предыдущая пуля тоже меняет направление.

if bullet.x < 1919 and bullet.x > 0 and facing==-1 or bullet.x < 1919 and bullet.x > 0 and facing==1 :#boundry for bullets made small change
    bullet.x += bullet.vel
elif bullet.y < 803 and bullet.y> 0 and facing==2:#boundry for bullets made small change needs added to  main stage
    bullet.y -= bullet.vel    
elif bullet.y < 803 and bullet.y > 0 and facing==-2 :#needs added to main stage
    bullet.y -= bullet.vel 
else:
    bullets.pop(bullets.index(bullet))

keys = pygame.key.get_pressed()
movemana=25#the cost when using that move need ot make function for  that later

if keys[pygame.K_SPACE] and mana>movemana and shootloop==0:
    #print(mana)
    mana-=movemana
    #print(mana)
    if man.up==True:
        facing=2
    if man.left==True:
        facing = -1
    if man.right==True:
        facing = 1
    if man.down==True:
        facing=-2
    print(facing)
    if len(bullets) < 5:
        bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))
    shootloop=1#cooldownrate

1 Ответ

0 голосов
/ 24 апреля 2019

Похоже, что присутствует только часть вашего кода, но я сделаю все возможное с тем, что доступно.

Похоже, все ваши маркеры имеют одну и ту же глобальную переменную facing.facing устанавливается в нижней части вашего кода.Затем, я полагаю, верхняя часть вызывается для каждого маркера, что означает, что все они будут использовать одно и то же значение facing (независимо от того, какое значение было установлено при создании последнего маркера).

Однако онопохоже, что вы также храните эту переменную facing внутри каждой пули, которая создается;см. строку внизу, которая начинается с bullets.append(projectile(... Это значение просто не используется в настоящее время.Поэтому, проверяя расположение маркера в верхней половине, попробуйте использовать bullet.facing (или как его там называть) вместо просто facing.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...