[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Forcing sprites to use specific palette entries?



Okay, I think I have a workaround, if I don't .convert() any images, and modify the palettes from the surface itself, it seems to work fine, hopefully I can get unconverted surfaces to blit properly though, it seems that sprites have no issues blitting, its just plain surfaces which wont blit.

On Sun, Aug 15, 2010 at 10:00 PM, Thiago Chaves <shundread@xxxxxxxxx> wrote:
Have you seen this?
http://www.pygame.org/docs/ref/display.html#pygame.display.set_palette

If that's not the missing piece in your puzzle, then it's time for you
to start posting sample code and images so we can reproduce your
issue.

-Thiago

On Sun, Aug 15, 2010 at 10:12 PM, John Anderson
<corporalmustard@xxxxxxxxx> wrote:
> I actually have one, but I would like if it were possible to alter which
> palette entries are used by pygame in real-time, what it seems happens when
> I .convert() an image, it loses it's unique palette data and just uses the
> basic pygame palette, but if I don't convert it, it makes it difficult to
> blit images and adds extra performance issues which might be a problem
> later.  The weird thing is that when I choose not to convert the images, it
> seems to make no difference, the sprites just seem to use whatever indicies
> they want anyway, is there some parameter in convert i dont know about, or
> is it my display setup?
>
> On Sun, Aug 15, 2010 at 10:01 AM, Thiago Chaves <shundread@xxxxxxxxx> wrote:
>>
>> You need an image editor that gves you an easy way to keep track of
>> the color index of your palettes. =)
>>
>> -Thiago
>>
>> On Fri, Aug 13, 2010 at 6:32 PM, John Anderson
>> <corporalmustard@xxxxxxxxx> wrote:
>> > yes, I have, unfortunatley that still doesnt mean I can specify where
>> > the
>> > colours are placed on even the sprite's palette.  For example, I have a
>> > particular sprite with a slightly coloured outline, in the sprite's
>> > palette,
>> > entries from 0 - 15 are empty, and the outline is entry 16.  I'm not
>> > even
>> > sure where any of the other colours are, and that position might change
>> > with
>> > an excess of differently coloured sprites on screen, or worse, even
>> > disappear entirely.  What I would like to do is have the palette fill
>> > from
>> > the bottom, or preferably from a specified index with new palette
>> > entries
>> > loaded from .gif files, rather than try and find a close approximate
>> > colour
>> > on the existing palette, is this possible to do without changing the
>> > surface
>> > implementation in pygame, or even SDL?
>> >
>> > On Fri, Aug 13, 2010 at 4:59 AM, Thiago Chaves <shundread@xxxxxxxxx>
>> > wrote:
>> >>
>> >> Have you looked at the palette functions on surfaces?
>> >>
>> >> http://www.pygame.org/docs/ref/surface.html#Surface.get_palette
>> >>
>> >> -Thiago
>> >>
>> >> On Thu, Aug 12, 2010 at 8:56 PM, John Anderson
>> >> <corporalmustard@xxxxxxxxx> wrote:
>> >> > Hi, I was wondering if it was possible to force an 8-bit colour
>> >> > sprite
>> >> > to
>> >> > use a very particular set of palette entries, like say, Sprite A uses
>> >> > colour
>> >> > indicies 0 - 16, and Sprite B uses 17 - 32.  As it stands, pygame
>> >> > automatically assigns the colours in a sprite to the closest colour
>> >> > on
>> >> > the
>> >> > main palette, meaning that it is very hard to predict which colours
>> >> > are
>> >> > where, and thus makes palette swapping a nightmare, is there any way
>> >> > around
>> >> > this?
>> >> >
>> >
>> >
>
>