Pygame: вражеские петли движения - PullRequest
0 голосов
/ 01 марта 2020

Я бы хотел, чтобы противник сделал то же самое в l oop: он уходит влево до х = 150, а затем уходит вправо до х = 1300. Но когда игрок движется, фон также перемещается, и я хотите, чтобы противник go направо и налево между указанными c точками на заднем плане, а не между двумя координатами окна игры. Это сложно объяснить, поэтому спросите, хотите ли вы что-то более точное. Я действительно не знаю, какой код мне нужно показать, поэтому вот код движения игрока и движения противника:

bg_speed = 0
player_speed = 100
enemy_speed = 80

#Enemy
if enemy_animation:
    win.blit(enemy[enemycount//3], (enemyX, enemyY)) 
    enemycount += 1

    if enemy_vel > 0:
        if enemyX >= 1300:
            enemy_vel = -1
        else:
            if left == True and playerX <= 100:
                enemyX += (enemy_speed + player_speed) * dt
            elif left == True and playerX > 100:
                enemyX += (enemy_speed + (player_speed / 5)) * dt
            elif right == True and playerX >= 1350:
                enemyX += (enemy_speed - player_speed) * dt
            elif right == True and playerX < 1350:
                enemyX += (enemy_speed - (player_speed / 5)) * dt
            else:
                enemyX += enemy_speed * dt
    elif enemy_vel < 0:
        if enemyX <= 150:
            enemy_vel = 1
        else:
            if left == True and playerX <= 100:
                enemyX -= (enemy_speed - player_speed) * dt
            elif left == True and playerX > 100:
                enemyX -= (enemy_speed - (player_speed / 5)) * dt
            elif right == True and playerX >= 1350:
                enemyX -= (enemy_speed + player_speed) * dt
            elif right == True and playerX < 1350:
                enemyX -= (enemy_speed + (player_speed / 5)) * dt
            else:
                enemyX -= enemy_speed * dt

#Player :
if left:
    win.blit(walkLeft[walkcount//1], (playerX-20,playerY))

    if playerX > 100:
        playerX -= (player_speed + (player_speed / 5)) * dt  #vitesse du joueur = 1/3
        backgroundX += (player_speed / 5) * dt #vitesse du fond d'écran = 2/3
        if playerX == 100: 
            playerX -= 0
            backgroundX += player_speed * dt
    else:
        backgroundX += player_speed * dt

elif right:
    win.blit(walkRight[walkcount//1], (playerX-50,playerY))

    if playerX < 1350:
        playerX += (player_speed + (player_speed / 5)) * dt
        backgroundX -= (player_speed / 5) * dt
        if playerX == 1350:
            playerX += 0
            backgroundX -= player_speed * dt
    else:
        backgroundX -= player_speed * dt

Спасибо за вашу помощь:)

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