Python Forum

Full Version: creating sprite mask
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi trying to create a mask for a sprite . this is what I found
sprite.mask = pygame.mask.from_surface(sprite.image)

My question is what do I put here (sprite.image)?
And sprite.mask at the beginning can it be changed to say image3.mask?
Try testing it out, then come back if you need help
Hi decided to try doing the collision just using rect for now this is my code for it . It runs but does not detect a hit when the two sprites collide . Any help would be much appreciated .
Quote:image1=pygame.sprite.Sprite()
image1.image = pygame.image.load("picy.png").convert_alpha()
image2 = pygame.sprite.Sprite()
image2.image = pygame.image.load("picy1.png").convert_alpha()
title = pygame.image.load("aba2 title.png")
image1_rect = image1.image.get_rect(topleft=(x,y))
image2_rect = image2.image.get_rect(topleft=(x1,y1))
image1.mask = pygame.mask.from_surface(image1.image)
image2.mask = pygame.mask.from_surface(image2.image)
screen.blit(title,(0,0))
screen.blit(image2.image,(x1,y1))
screen.blit(image1.image,(x,y))
pygame.display.update()


I have edited this post to include the mask code . If I replace .image with _rect or .mask
the code will not run . Help needed please .
For the colliding -
https://www.pygame.org/project-Rect+Coll...1061-.html


One more thing - Any errors?
(May-16-2019, 07:13 PM)pfaber11 Wrote: [ -> ]My question is what do I put here (sprite.image)?
And sprite.mask at the beginning can it be changed to say image3.mask?
replace sprite.image with what is returned by pygame.image.load('image_name.png')

it doesnt have to be sprite.mask. You can just do mask.

They are just informing that what is returned is a sprite.mask / sprite.image (not that you have to name them anything like that).

(May-17-2019, 05:31 PM)pfaber11 Wrote: [ -> ]It runs but does not detect a hit when the two sprites collide .
You do not show any code referring to your collision detection, so we could not know.
Thanks for all the replies got it sorted now I am new to python but am learning as I go .