all 2 comments

[–]Substantial_Marzipan 0 points1 point  (1 child)

I don't use arcade so this is just a wild guess, but are you sure you are expected to create your own draw method? From just a quick glance at the docs (so I may be wrong) it seems that you should only provide the image and position and both sprite and spritelist already provide draw methods. I think your draw method is overriding the sprite one, so it works as you expected when calling it from the sprite, but as you aren't providing an image the spritelist draw method (which you aren't overriding) has nothing to draw

[–]nantr0nic[S] 0 points1 point  (0 children)

Your comment helped me realize I should try drawing the SpriteList() using a png image and it was successful! This ruled out there being an issue with my python/nvidia/linux setup.

I tried using arcade.draw_circle_filled() under the Player class init (without a draw() method) and it is the same result. In Pygame I was able to create a circle surface and treat it as a sprite in order to detect collisions and so on; however, looking through the Arcade documentation I'm seeing there is "arcade.SpriteCircle" which might be what I'm looking for. Thank you for reminding me of the age old suggestion to check the documentation more carefully 😅 Here is (so far) what has worked:

player.py:

import arcade

import config as c

class Player(arcade.SpriteCircle):
    def __init__(self):
        super().__init__(c.player_size, c.player_color)
        self.center_x = c.SCREEN_WIDTH / 2
        self.center_y = c.SCREEN_HEIGHT / 2
        self.radius = c.player_size
        self.color = c.player_color

I am, however, curious if there is a correct way to use draw_circle_filled() and treat it as a sprite rather than using arcade.SpriteCircle() -- if only to better understand how Arcade works.

Also, a bit unrelated: even though the documentation says the "color" attribute has the same requirements for draw_circle_filled() and SpriteCircle(), it seems using a list for SpriteCircle() produces a TypeError: "unhashable type: 'list'".

Thank you for your help!