Как добавить движение к слою параллакса, не влияя на момент игрока?например, облако на заднем плане - PullRequest
0 голосов
/ 14 ноября 2018

Я работаю над 2D-плаформерной игрой, в которой есть три слоя параллакса (небо, горы и облако), движется слой неба и горы в соответствии со свойством масштаба движения слоя параллакса, и я добавил скрипт в слой облака, чтобы он продолжал двигаться в одном направлении, то есть справа налево, даже когда игрок бездействует или не движется. Но я застрял с проблемой, что, когда игрок движется или прыгает, облако также получает эффект прыжка и продолжает следовать за игроком. Как заставить облако двигаться в одном направлении независимо от момента игрока? Мой облачный скрипт:

extends ParallaxBackground

var dst = 0

func _ready():
    set_process(true)
    pass 

func _process(delta):
    dst -= 50 *delta
    set_scroll_offset(Vector2(dst,0))

this is image for reference

1 Ответ

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

Я предполагаю, что в такой игре у вас есть камера, подключенная к игроку, чтобы она могла следить за движением игрока.Возможно ли, что вы сделали облако дочерним элементом камеры или плеера?Насколько я понимаю, фоны параллакса в играх с боковой прокруткой структурированы следующим образом:

Node2D
 |_ParallaxBackground    #Base background layer 
 | |_Sprite
 | |_ParallaxLayer        # Middle-back layer (moves at own speed - defined by you)
 | | |_Sprite
 | |_ParallaxLayer2        # Middle-Fore layer (moves at own speed - defined by you)
 | | |_Sprite
 | |_ParallaxLayer3        # Foreground layer (moves at own speed - defined by you)
 |   |_Sprite
 |_KinematicBody2D         #Player Physics/movement
   |_CollisionShape2D      #player collision
   | |_Sprite              #Player image
   |_Camera2D              #camera attached to player (follows player movement)

Как видно из этой структуры, слои параллакса (и их движения) хранятся отдельно от игрока / камеры,Вы должны иметь возможность контролировать скорость всех слоев параллакса отдельно (включая слой облаков), не влияя ни на один из них движением игрока.

Я признаю первым, я не эксперт, поскольку яЯ довольно новичок в Годо, я просто пытаюсь предложить полезные советы, несмотря на мои неполные знания о двигателе.При этом, пожалуйста, дайте мне знать, если это решение работает для вас, поскольку эти знания помогут укрепить мое понимание Годо и улучшить мою способность помогать другим.

...