well, the exact answer i can say is 'yes and no'... ;) the 'yes' is finally i can start understanding how collisions works on pygame, and this is truly wonderful! thank you!
the 'no' is, when i did use 'if' over coordinates and size calculations instead of collisions - http://pastebin.com/f38dfd442 - it also shown just one sprite instead of from 'amnt' variable (i used to try between 32 and 128), and performed hugelly slow as well... - this is concerning me when i had some ideas on coding games with some complexity on sprite ammounts (like doing some danmaku experimental stuff or something in this way...) for me were a surprise why both http://pastebin.com/m1e1c7c94 and http://pastebin.com/f38dfd442 shown only one sprite - very weird... overally, your correction will help me coding simpler snippets thanks! :) (and thanks also confirming subsurfaces are fine for collisions - i'm still very newbie on Pygame! :) ) On 7/13/09, Zack Schilling <zack.schill...@gmail.com> wrote: > Well, this version runs. I'm not sure if it's doing what you want but > it does make a windows and draws some stuff. The subsurface splits are > correct. I tried to make minimal corrections. > > http://pastebin.com/m1e1c7c94 > > -Zack > > On Jul 13, 2009, at 11:47 AM, Paulo Silva wrote: > >> @Zack - what i wanted were change the background colour to #FF0000 >> only when the sprites 0 and 1 collides - anyway, sorry this code is >> not PEP8, and using abbreviated variable names - i came from hobbystic >> 80's ansi-basic , where i were hugelly one-liner, and variable names >> only took 1 or 2 characters that time - i have deep bad habits from >> that time, and learning PEP8 is still a huge barrier for me - be >> welcome on breaking lines at ';' or rewriting variable names, if you >> want... >> >> @Henrique, if you can help fixing http://pastebin.com/f524a8cf2 would >> be great - i understand what you were saying from the error message, >> but i don't have any idea about the solution for that... - what i >> coded there were the closest i could imagine as possible for having >> that working... - i even tried to avoid all default sprite collision >> methods from pygame, and only using position and size calculations for >> collisions (outside of any def or class - i'm trying to avoid them on >> snippets like this), but the code became hugelly slow.... >> >> thank you all! >> >> >> On 7/13/09, Henrique Nakashima <henrique.nakash...@gmail.com> wrote: >>> Traceback (most recent call last): >>> File "col.py", line 52, in <module> >>> collide=pygame.sprite.collide_rect(sprid[0],sprid[1]) >>> File "C:\Python25\lib\site-packages\pygame\sprite.py", line 1146, in >>> collide_r >>> ect >>> return left.rect.colliderect(right.rect) >>> AttributeError: 'pygame.Surface' object has no attribute 'rect' >>> >>> This error happens because you are passing Surfaces to >>> pygame.sprite.collide_rect, not Sprites. >>> >>> On Mon, Jul 13, 2009 at 12:27, Zack Schilling >>> <zack.schill...@gmail.com>wrote: >>> >>>> I tried to read and correct your code, but I have no idea at all >>>> what's >>>> going on. It's written like C++ transposed directly into python, >>>> which is >>>> confusing. It doesn't help that there are no comments at all and the >>>> variable names are cryptic. A big problem seems to be simply >>>> feeding wrong >>>> object types to all the functions. You're sending sprites to >>>> blitters and >>>> rects to the sprite collide. >>>> >>>> I'll have a go at understanding what you want to do and making it >>>> work, >>>> but >>>> I make no promises. If I can get that far, I'll also rewrite it in >>>> a much >>>> more pythonic way. Then you can compare the two and learn much >>>> better >>>> practices when working in python. >>>> >>>> -Zack >>>> >>>> >>>> On Jul 13, 2009, at 8:03 AM, Paulo Silva wrote: >>>> >>>> hi! >>>>> >>>>> well, for me finding a good pygame snippet with sprite collision >>>>> (and >>>>> simple to understand) is like finding a needle in a haystack... >>>>> >>>>> but when i try do on my own, i get this: >>>>> >>>>> Traceback (most recent call last): >>>>> File "_spritesheetexample15b4_difsiz_collision.py", line 47, in >>>>> <module> >>>>> collide=pygame.sprite.collide_rect(spridr[0].rect,spridr[1].rect) >>>>> AttributeError: 'pygame.Rect' object has no attribute 'rect' >>>>> >>>>> the example is: http://pastebin.com/f524a8cf2 >>>>> >>>>> all suggestions are welcome! (be welcome also fixing that pastebin, >>>>> and sending us the pastebin url with the fixes! ;) ) - sorry it's >>>>> not >>>>> PEP8 yet... :/ >>>>> >>>>> thanks! ;) >>>>> >>>>> >>>>> >>>>> On 7/13/09, René Dudfield <ren...@gmail.com> wrote: >>>>> >>>>>> On Mon, Jul 13, 2009 at 7:32 AM, Paulo Silva <nitrofur...@gmail.com >>>>>> > >>>>>> wrote: >>>>>> >>>>>> this reference i know from a long time, and figured out easily >>>>>> there >>>>>>> were the exact methods to be used - the problem is i couldn't >>>>>>> have a >>>>>>> snippet working only following that - on my oppinion on that >>>>>>> referenence, each pygame method should have a working snippet >>>>>>> to be >>>>>>> tried out - for me is easier to work on tiny snippets, just >>>>>>> like with >>>>>>> lego bricks >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> Hi, >>>>>> >>>>>> pygame comes with examples. Either use those, or use the code >>>>>> search >>>>>> button >>>>>> next to each method, to search through all the projects on the >>>>>> internet >>>>>> that >>>>>> use pygame. There's 238 results for spritcollide for example. >>>>>> >>>>>> >>>>>> cu, >>>>>> >>>>>> >>>> >>> > >