tile opsprites → rgbaimport fullseye as fs; fs.ledger.parallax_layers(layers, camera_x, factors, camera_y=0.0, factors_y=None) (実装を直接呼ぶなら import gfx2d; gfx2d.parallax_layers(layers, camera_x, factors, camera_y=0.0, factors_y=None)、台帳から引くなら opsgfx2d.get("parallax_layers"))Scroll a set of rgba layers at different rates and composite them.
layers[0] is the farthest layer and is drawn first. Each layer is
shifted by -round(camera_x * factors[i]) columns (and rows, if
factors_y is given) and wraps — a parallax backdrop is a loop, and
wrapping is what makes it one.
Shifts are rounded to whole pixels, so the scroll is a pure permutation: a
single layer shifted by exactly its own width comes back with its alpha
channel bit-identical and its colour identical wherever alpha > 0. (The
colour of fully transparent pixels is not preserved — compositing goes
through :func:premultiply, which zeroes it by definition. That is the
documented cost of the premultiplied round trip, not a bug in the scroll.)
Sub-pixel scrolling would resample every frame and accumulate blur, which is
why it is not offered here — put the fractional part in
:func:sprite_transform if you need it.
py -3.11 examples/gfx2d_scene.pyrgba を入力に取れる)premultiply · alpha_composite · sprite_blit · sprite_transform · sprite_sheet_slice · nine_slice
tile)Provenance: gfx2d.py — GFX2D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.