Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pygame Test by KNovak
- #need some help... can't seem to reconcile the sprite rotation with the sprite group update
- #vs the rect blit function!
- import pygame, sys, os
- from pygame.locals import *
- pygame.init()
- pygame.key.set_repeat(1)
- fullscreen = False;
- #startup settings
- for arg in sys.argv:
- if arg == "-f":
- fullscreen = True
- #Video Display information
- vidinfo = pygame.display.Info()
- if fullscreen == True:
- vidsize = (vidinfo.current_w, vidinfo.current_h)
- window = pygame.display.set_mode(vidsize, pygame.FULLSCREEN)
- else:
- window = pygame.display.set_mode((640,480))
- pygame.display.set_caption('KNova Test Window')
- screen = pygame.display.get_surface()
- background = pygame.Surface((screen.get_width(), screen.get_height()))
- #colors
- WHITE = (255,255,255)
- BLUE = (0,0,150)
- GREEN = (0,150,0)
- #text
- def drawText (text, color, xloc, yloc, size):
- fontObj = pygame.font.Font('freesansbold.ttf', size)
- textSurface = fontObj.render(text, True, color)
- textRectObj = textSurface.get_rect()
- textRectObj.center = (xloc, yloc)
- return textSurface, textRectObj
- #Sprite Class for the Ship Image
- class Ship(pygame.sprite.Sprite):
- image = pygame.image.load("./resources/ship.png")
- image= image.convert()
- #initialization function
- def __init__(self, position=(100,100)):
- pygame.sprite.Sprite.__init__(self,self.groups)
- self.pos = position
- self.image = Ship.image
- self.rect = self.image.get_rect()
- #initial drawing
- self.rect.center = self.pos
- self.angle = 0
- #move function
- def move(self, dx, dy):
- oldx, oldy = self.pos
- self.pos = (oldx + dx, oldy - dy)
- self.rect.center = self.pos
- #rotate - it's counterclockwise by default
- def rotate(self):
- if self.angle >= 360:
- self.angle = 0
- if self.angle <= -360:
- self.angle = 0
- loc = self.rect.center
- rotimage = pygame.transform.rotate(self.image, self.angle)
- rotrect = rotimage.get_rect()
- rotrect.center = loc
- screen.blit(rotimage,rotrect)
- print rotrect
- spriteGroup = pygame.sprite.Group()
- Ship.groups = spriteGroup
- newShip = Ship()
- #sprite group update
- def spriteUpdate(group, screen, background):
- group.clear(screen, background)
- group.update()
- group.draw(screen)
- #get keyboard events
- def pyin(events):
- for event in events:
- if event.type == QUIT:
- sys.exit(0)
- if event.type == KEYDOWN:
- key = pygame.key.get_pressed()
- if (key[pygame.K_ESCAPE]):
- sys.exit(0)
- if (key[K_UP]):
- newShip.move(0,3)
- if (key[K_DOWN]):
- newShip.move(0,-3)
- if (key[K_LEFT]):
- newShip.angle += 3
- newShip.rotate()
- if (key[K_RIGHT]):
- newShip.angle -= 3
- newShip.rotate()
- while True:
- pyin(pygame.event.get())
- # pykey(pygame.key.get_pressed())
- pygame.display.update()
- spriteUpdate(spriteGroup, screen, background)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement