Как добавить движение в слой параллакса, не влияя на момент игрока? например, облако на заднем плане
Я работаю над 2D-плаформерной игрой, в которой есть три слоя параллакса (небо, горы и облако), движется слой неба и горы в соответствии со свойством масштаба движения слоя параллакса, и я добавил скрипт в слой облака, чтобы он продолжал двигаться в одном направлении. то есть справа налево, даже когда игрок бездействует или не движется. Но я застрял с проблемой, что, когда игрок движется или прыгает, облако также получает эффект прыжка и продолжает следовать за игроком. Как заставить облако двигаться в одном направлении независимо от момента игрока? мой облачный скрипт:
extends ParallaxBackground
var dst = 0
func _ready():
set_process(true)
pass
func _process(delta):
dst -= 50 *delta
set_scroll_offset(Vector2(dst,0))
0 ответов
Я предполагаю, что в такой игре у вас есть камера, прикрепленная к игроку, чтобы она могла следить за движением игрока. Возможно ли, что вы сделали облако дочерним элементом камеры или плеера? Насколько я понимаю, фоны параллакса в играх с боковой прокруткой структурированы следующим образом:
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)
Как видно из этой структуры, слои параллакса (и их движения) хранятся отдельно от плеера / камеры. Вы должны иметь возможность контролировать скорость всех слоев параллакса отдельно (включая слой облаков) без какого-либо воздействия на них движений игрока.
Я буду первым, кто признает, я не эксперт, так как я довольно новичок в Годо, я просто пытаюсь предложить полезные советы, несмотря на мои неполные знания о двигателе. При этом, пожалуйста, дайте мне знать, если это решение работает для вас, так как эти знания помогут укрепить мое понимание Годо и улучшить мою способность помогать другим.