Я понял, как это сделать, поэтому я отвечу на свой собственный вопрос для тех, кто гуглит его позже.
РЕДАКТИРОВАТЬ: я думаю, что я упростил код столько, сколько я знаю, как.Я также добавил уравнения, так что все, что вам нужно сделать, это вставить ваши цифры вверху и ваши файлы внизу.Он идеально подходит для фонов того же размера, что и ваше окно.
import arcade
import os
# --- Constants ---
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 400
IMAGE_WIDTH = 800
SCROLL_SPEED = 5
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
file_path = os.path.dirname(os.path.abspath(__file__))
os.chdir(file_path)
def setup(self):
#first background image
self.background_list = arcade.SpriteList()
self.background_sprite = arcade.Sprite("image.file")
self.background_sprite.center_x = IMAGE_WIDTH // 2
self.background_sprite.center_y = SCREEN_HEIGHT // 2
self.background_sprite.change_x = -SCROLL_SPEED
self.background_list.append(self.background_sprite)
#second background image
self.background_sprite_2 = arcade.Sprite("image.file")
self.background_sprite_2.center_x = SCREEN_WIDTH + IMAGE_WIDTH // 2
self.background_sprite_2.center_y = SCREEN_HEIGHT // 2
self.background_sprite_2.change_x = -SCROLL_SPEED
self.background_list.append(self.background_sprite_2)
def on_draw(self):
arcade.start_render()
self.background_list.draw()
def update(self, delta_time):
#reset the images when they go past the screen
if self.background_sprite.left == -IMAGE_WIDTH:
self.background_sprite.center_x = SCREEN_WIDTH + IMAGE_WIDTH // 2
if self.background_sprite_2.left == -IMAGE_WIDTH:
self.background_sprite_2.center_x = SCREEN_WIDTH + IMAGE_WIDTH // 2
self.background_list.update()
def main():
window = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
window.setup()
arcade.run()
if __name__ == "__main__":
main()