Re: [pygame] sprite 'weird' rotation
loved that example! thank you! it recalls me childhood wooden toys! awesome! :) sent this link to http://identi.ca/group/pygame as well On 7/20/09, DR0ID wrote: > hi > > Maybe that helps you: http://arainyday.se/projects/python/JumpingJack/ > > Look in the archives, this has been asked before. > > ~DR0ID > > Paulo Silva schrieb: >> ok, understood! and thanks about the fixing from the attachment! :) >> >> On 7/20/09, Michael George wrote: >> >>> Note that you would need rotate_point or something similar if you want >>> to rotate around a point that's not the center. >>> >>> Michael George wrote: >>> Oops, I made a type. See attached Michael George wrote: > Actually, after looking more closely, rotate_point wasn't what you > needed. The problem was because when you rotate the image, the > output is still an upright rectangle, and you were placing (the upper > left corner of) that rectangle in the same place. If you place the > center instead, it works out. See the attached file for the fixed > version. > > --Mike > > Paulo Silva wrote: > >> thanks! >> >> but btw, i tried to apply it, and the result got more weird - not only >> i can't move the sprites independently, as the rotations got much more >> weird >> >> http://pastebin.com/f733ebf04 >> >> (anyway, i'm still newbie on Pygame, and i still struggle a lot about >> how Python deals with variables, arrays, lists, and methods ) >> >> if someone know how to fix it, be welcome on editing that, and sharing >> us the resulting pastebin url - thanks a lot in advance! :) >> >> >> >> On 7/19/09, Michael George wrote: >> >> >>> You can use a function from my game: >>> >>> http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup >>> >>> >>> >>> see the rotate_point function >>> >>> --Mike >>> >>> Paulo Silva wrote: >>> >>> hi, i confess it seems a bad handle from me about sprite rotation on Pygame - do someone know better how we can handle it better, making them rotating its center? http://pastebin.com/f53335b66 thanks! >>> >> >> >
Re: [pygame] sprite 'weird' rotation
hi Maybe that helps you: http://arainyday.se/projects/python/JumpingJack/ Look in the archives, this has been asked before. ~DR0ID Paulo Silva schrieb: ok, understood! and thanks about the fixing from the attachment! :) On 7/20/09, Michael George wrote: Note that you would need rotate_point or something similar if you want to rotate around a point that's not the center. Michael George wrote: Oops, I made a type. See attached Michael George wrote: Actually, after looking more closely, rotate_point wasn't what you needed. The problem was because when you rotate the image, the output is still an upright rectangle, and you were placing (the upper left corner of) that rectangle in the same place. If you place the center instead, it works out. See the attached file for the fixed version. --Mike Paulo Silva wrote: thanks! but btw, i tried to apply it, and the result got more weird - not only i can't move the sprites independently, as the rotations got much more weird http://pastebin.com/f733ebf04 (anyway, i'm still newbie on Pygame, and i still struggle a lot about how Python deals with variables, arrays, lists, and methods ) if someone know how to fix it, be welcome on editing that, and sharing us the resulting pastebin url - thanks a lot in advance! :) On 7/19/09, Michael George wrote: You can use a function from my game: http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup see the rotate_point function --Mike Paulo Silva wrote: hi, i confess it seems a bad handle from me about sprite rotation on Pygame - do someone know better how we can handle it better, making them rotating its center? http://pastebin.com/f53335b66 thanks!
Re: [pygame] sprite 'weird' rotation
ok, understood! and thanks about the fixing from the attachment! :) On 7/20/09, Michael George wrote: > Note that you would need rotate_point or something similar if you want > to rotate around a point that's not the center. > > Michael George wrote: >> Oops, I made a type. See attached >> >> Michael George wrote: >>> Actually, after looking more closely, rotate_point wasn't what you >>> needed. The problem was because when you rotate the image, the >>> output is still an upright rectangle, and you were placing (the upper >>> left corner of) that rectangle in the same place. If you place the >>> center instead, it works out. See the attached file for the fixed >>> version. >>> >>> --Mike >>> >>> Paulo Silva wrote: thanks! but btw, i tried to apply it, and the result got more weird - not only i can't move the sprites independently, as the rotations got much more weird http://pastebin.com/f733ebf04 (anyway, i'm still newbie on Pygame, and i still struggle a lot about how Python deals with variables, arrays, lists, and methods ) if someone know how to fix it, be welcome on editing that, and sharing us the resulting pastebin url - thanks a lot in advance! :) On 7/19/09, Michael George wrote: > You can use a function from my game: > > http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup > > > > see the rotate_point function > > --Mike > > Paulo Silva wrote: > >> hi, >> >> i confess it seems a bad handle from me about sprite rotation on >> Pygame - do someone know better how we can handle it better, making >> them rotating its center? >> >> http://pastebin.com/f53335b66 >> >> thanks! >> >> > >>> >> > >
Re: [pygame] sprite 'weird' rotation
Note that you would need rotate_point or something similar if you want to rotate around a point that's not the center. Michael George wrote: Oops, I made a type. See attached Michael George wrote: Actually, after looking more closely, rotate_point wasn't what you needed. The problem was because when you rotate the image, the output is still an upright rectangle, and you were placing (the upper left corner of) that rectangle in the same place. If you place the center instead, it works out. See the attached file for the fixed version. --Mike Paulo Silva wrote: thanks! but btw, i tried to apply it, and the result got more weird - not only i can't move the sprites independently, as the rotations got much more weird http://pastebin.com/f733ebf04 (anyway, i'm still newbie on Pygame, and i still struggle a lot about how Python deals with variables, arrays, lists, and methods ) if someone know how to fix it, be welcome on editing that, and sharing us the resulting pastebin url - thanks a lot in advance! :) On 7/19/09, Michael George wrote: You can use a function from my game: http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup see the rotate_point function --Mike Paulo Silva wrote: hi, i confess it seems a bad handle from me about sprite rotation on Pygame - do someone know better how we can handle it better, making them rotating its center? http://pastebin.com/f53335b66 thanks!
Re: [pygame] sprite 'weird' rotation
Oops, I made a type. See attached Michael George wrote: Actually, after looking more closely, rotate_point wasn't what you needed. The problem was because when you rotate the image, the output is still an upright rectangle, and you were placing (the upper left corner of) that rectangle in the same place. If you place the center instead, it works out. See the attached file for the fixed version. --Mike Paulo Silva wrote: thanks! but btw, i tried to apply it, and the result got more weird - not only i can't move the sprites independently, as the rotations got much more weird http://pastebin.com/f733ebf04 (anyway, i'm still newbie on Pygame, and i still struggle a lot about how Python deals with variables, arrays, lists, and methods ) if someone know how to fix it, be welcome on editing that, and sharing us the resulting pastebin url - thanks a lot in advance! :) On 7/19/09, Michael George wrote: You can use a function from my game: http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup see the rotate_point function --Mike Paulo Silva wrote: hi, i confess it seems a bad handle from me about sprite rotation on Pygame - do someone know better how we can handle it better, making them rotating its center? http://pastebin.com/f53335b66 thanks! #! /usr/bin/python # using sprites_rgba.png from http://img17.imageshack.us/img17/3166/spritesrgba.png import sys, pygame, math, os, random from pygame.locals import * pygame.init() size=width,height=960,240;screen=pygame.display.set_mode(size);pygame.display.set_caption("multiplayer sprite test with collisions") spd=4;amnt=4;ampl=8;xpos=[0]*amnt;ypos=[0]*amnt;rotv=[0]*amnt;sprid=[];spridr=[] #some arrays and variables for i in range (0,amnt,1): xpos[i]=64+(128*i)+random.randint(0,32);ypos[i]=64+random.randint(0,32);rotv[i]=random.randint(0,359) sprall=pygame.image.load("sprites_rgba.png") #loading sprites for i in range (0,4,1): spritetmp=sprall.subsurface(i*64,0,64,64);spriterecttmp=spritetmp.get_rect() sprid.append(spritetmp);spridr.append(spriterecttmp) rotincr=5 while 1: key=pygame.key.get_pressed() #checking pressed keys if key[pygame.K_a]:xpos[0]-=spd if key[pygame.K_d]:xpos[0]+=spd if key[pygame.K_w]:ypos[0]-=spd if key[pygame.K_s]:ypos[0]+=spd if key[pygame.K_z]:rotv[0]+=rotincr if key[pygame.K_x]:rotv[0]-=rotincr if key[pygame.K_f]:xpos[1]-=spd if key[pygame.K_h]:xpos[1]+=spd if key[pygame.K_t]:ypos[1]-=spd if key[pygame.K_g]:ypos[1]+=spd if key[pygame.K_v]:rotv[1]+=rotincr if key[pygame.K_b]:rotv[1]-=rotincr if key[pygame.K_j]:xpos[2]-=spd if key[pygame.K_l]:xpos[2]+=spd if key[pygame.K_i]:ypos[2]-=spd if key[pygame.K_k]:ypos[2]+=spd if key[pygame.K_m]:rotv[2]+=rotincr if key[pygame.K_COMMA]:rotv[2]-=rotincr if key[pygame.K_LEFT]: xpos[3]-=spd if key[pygame.K_RIGHT]:xpos[3]+=spd if key[pygame.K_UP]: ypos[3]-=spd if key[pygame.K_DOWN]: ypos[3]+=spd if key[pygame.K_KP0]: rotv[3]+=rotincr if key[pygame.K_KP_PERIOD]:rotv[3]-=rotincr bgcolour=0x998877#checking collisions if spridr[0].colliderect(spridr[1]):bgcolour=0xAA if spridr[0].colliderect(spridr[2]):bgcolour=0x55AA55 if spridr[0].colliderect(spridr[3]):bgcolour=0xAA if spridr[1].colliderect(spridr[2]):bgcolour=0x55 if spridr[1].colliderect(spridr[3]):bgcolour=0xAA55AA if spridr[2].colliderect(spridr[3]):bgcolour=0x55 screen.fill(bgcolour) for i in range (0,amnt,1):#displaying sprites spridr[i].centerx=xpos[i] spridr[i].centery=ypos[i] #tmq=pygame.transform.rotate(sprid[i],rotv[i]) # <- rotate behaviour looks weird - center of rotation is not kept (...?) #screen.blit(tmq,spridr[i]) tmq=pygame.transform.rotate(sprid[i],rotv[i]) rect = tmq.get_rect() rect.center = (xpos[i], ypos[i]) screen.blit(tmq,rect) for event in pygame.event.get(): #praxis stuff if event.type==pygame.QUIT:sys.exit() pygame.display.flip();pygame.time.delay(1000/50)
Re: [pygame] sprite 'weird' rotation
Actually, after looking more closely, rotate_point wasn't what you needed. The problem was because when you rotate the image, the output is still an upright rectangle, and you were placing (the upper left corner of) that rectangle in the same place. If you place the center instead, it works out. See the attached file for the fixed version. --Mike Paulo Silva wrote: thanks! but btw, i tried to apply it, and the result got more weird - not only i can't move the sprites independently, as the rotations got much more weird http://pastebin.com/f733ebf04 (anyway, i'm still newbie on Pygame, and i still struggle a lot about how Python deals with variables, arrays, lists, and methods ) if someone know how to fix it, be welcome on editing that, and sharing us the resulting pastebin url - thanks a lot in advance! :) On 7/19/09, Michael George wrote: You can use a function from my game: http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup see the rotate_point function --Mike Paulo Silva wrote: hi, i confess it seems a bad handle from me about sprite rotation on Pygame - do someone know better how we can handle it better, making them rotating its center? http://pastebin.com/f53335b66 thanks! #! /usr/bin/python # using sprites_rgba.png from http://img17.imageshack.us/img17/3166/spritesrgba.png import sys, pygame, math, os, random from pygame.locals import * pygame.init() size=width,height=960,240;screen=pygame.display.set_mode(size);pygame.display.set_caption("multiplayer sprite test with collisions") spd=4;amnt=4;ampl=8;xpos=[0]*amnt;ypos=[0]*amnt;rotv=[0]*amnt;sprid=[];spridr=[] #some arrays and variables for i in range (0,amnt,1): xpos[i]=64+(128*i)+random.randint(0,32);ypos[i]=64+random.randint(0,32);rotv[i]=random.randint(0,359) sprall=pygame.image.load("sprites_rgba.png") #loading sprites for i in range (0,4,1): spritetmp=sprall.subsurface(i*64,0,64,64);spriterecttmp=spritetmp.get_rect() sprid.append(spritetmp);spridr.append(spriterecttmp) rotincr=5 while 1: key=pygame.key.get_pressed() #checking pressed keys if key[pygame.K_a]:xpos[0]-=spd if key[pygame.K_d]:xpos[0]+=spd if key[pygame.K_w]:ypos[0]-=spd if key[pygame.K_s]:ypos[0]+=spd if key[pygame.K_z]:rotv[0]+=rotincr if key[pygame.K_x]:rotv[0]-=rotincr if key[pygame.K_f]:xpos[1]-=spd if key[pygame.K_h]:xpos[1]+=spd if key[pygame.K_t]:ypos[1]-=spd if key[pygame.K_g]:ypos[1]+=spd if key[pygame.K_v]:rotv[1]+=rotincr if key[pygame.K_b]:rotv[1]-=rotincr if key[pygame.K_j]:xpos[2]-=spd if key[pygame.K_l]:xpos[2]+=spd if key[pygame.K_i]:ypos[2]-=spd if key[pygame.K_k]:ypos[2]+=spd if key[pygame.K_m]:rotv[2]+=rotincr if key[pygame.K_COMMA]:rotv[2]-=rotincr if key[pygame.K_LEFT]: xpos[3]-=spd if key[pygame.K_RIGHT]:xpos[3]+=spd if key[pygame.K_UP]: ypos[3]-=spd if key[pygame.K_DOWN]: ypos[3]+=spd if key[pygame.K_KP0]: rotv[3]+=rotincr if key[pygame.K_KP_PERIOD]:rotv[3]-=rotincr bgcolour=0x998877#checking collisions if spridr[0].colliderect(spridr[1]):bgcolour=0xAA if spridr[0].colliderect(spridr[2]):bgcolour=0x55AA55 if spridr[0].colliderect(spridr[3]):bgcolour=0xAA if spridr[1].colliderect(spridr[2]):bgcolour=0x55 if spridr[1].colliderect(spridr[3]):bgcolour=0xAA55AA if spridr[2].colliderect(spridr[3]):bgcolour=0x55 screen.fill(bgcolour) for i in range (0,amnt,1):#displaying sprites spridr[i].centerx=xpos[i] spridr[i].centery=ypos[i] #tmq=pygame.transform.rotate(sprid[i],rotv[i]) # <- rotate behaviour looks weird - center of rotation is not kept (...?) #screen.blit(tmq,spridr[i]) tmq=pygame.transform.rotate(sprid[i],rotv[i]) rect = tmq.get_rect() rect.center = (xpos[1], ypos[i]) screen.blit(tmq,rect) for event in pygame.event.get(): #praxis stuff if event.type==pygame.QUIT:sys.exit() pygame.display.flip();pygame.time.delay(1000/50)
Re: [pygame] sprite 'weird' rotation
thanks! but btw, i tried to apply it, and the result got more weird - not only i can't move the sprites independently, as the rotations got much more weird http://pastebin.com/f733ebf04 (anyway, i'm still newbie on Pygame, and i still struggle a lot about how Python deals with variables, arrays, lists, and methods ) if someone know how to fix it, be welcome on editing that, and sharing us the resulting pastebin url - thanks a lot in advance! :) On 7/19/09, Michael George wrote: > You can use a function from my game: > > http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup > > see the rotate_point function > > --Mike > > Paulo Silva wrote: >> hi, >> >> i confess it seems a bad handle from me about sprite rotation on >> Pygame - do someone know better how we can handle it better, making >> them rotating its center? >> >> http://pastebin.com/f53335b66 >> >> thanks! >> > >
Re: [pygame] sprite 'weird' rotation
You can use a function from my game: http://pen.svn.sourceforge.net/viewvc/pen/data/parts/cannon.py?revision=31&view=markup see the rotate_point function --Mike Paulo Silva wrote: hi, i confess it seems a bad handle from me about sprite rotation on Pygame - do someone know better how we can handle it better, making them rotating its center? http://pastebin.com/f53335b66 thanks!
[pygame] sprite 'weird' rotation
hi, i confess it seems a bad handle from me about sprite rotation on Pygame - do someone know better how we can handle it better, making them rotating its center? http://pastebin.com/f53335b66 thanks!