Attachment:
geometrybullet.png
Description: PNG image
Attachment:
plane.gif
Description: GIF image
import pygame
from pygame.locals import *
import random
pygame.init()
screen=pygame.display.set_mode((640,480),0,24)
pygame.display.set_caption("Hit The Stone")
class Plane(pygame.sprite.Sprite):
def __init__(self,bullet):
self.bullet=bullet
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('plane.gif').convert()
self.rect=self.image.get_rect()
self.rect.centerx=random.randint(0,screen.get_width())
self.distancefromcenter=30
self.rect.centery=screen.get_height()-self.distancefromcenter
self.dx=2
self.dy=2
def update(self):
pressed=pygame.key.get_pressed()
if pressed[K_DOWN]:
self.rect.centery+=self.dy
elif pressed[K_UP]:
self.rect.centery-=self.dy
elif pressed[K_LEFT]:
self.rect.centerx-=self.dx
elif pressed[K_RIGHT]:
self.rect.centerx+=self.dx
if self.rect.bottom>=screen.get_height():
self.rect.bottom=screen.get_height()
elif self.rect.top<=0:
self.rect.top=0
if self.rect.centerx>=screen.get_width()-self.distancefromcenter:
self.rect.centerx=screen.get_width()-self.distancefromcenter
elif self.rect.centerx<=self.distancefromcenter:
self.rect.centerx=self.distancefromcenter
if pressed[K_SPACE]:
self.bullet.x=self.rect.centerx
self.bullet.y=self.rect.centery
class Bullet(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('geometrybullet.png').convert_alpha()
self.rect=self.image.get_rect()
self.rect.center=(-100,-100)
self.x=-100
self.y=-100
self.dy=5
def update(self):
self.y-=self.dy
self.rect.center=(self.x,self.y)
if self.rect.top<0:
self.x=-100
self.y=-100
def main():
background=pygame.Surface(screen.get_size())
background=background.convert()
screen.blit(background,(0,0))
bullet=Bullet()
plane=Plane(bullet)
allSprites=pygame.sprite.Group(plane,bullet)
while 1:
for i in pygame.event.get():
quitPressed=pygame.key.get_pressed()
if i.type==QUIT or quitPressed[K_q]:
exit()
allSprites.clear(screen,background)
allSprites.update()
allSprites.draw(screen)
pygame.display.flip()
if __name__=='__main__':
main()