0% found this document useful (0 votes)
11 views

Game

Uploaded by

Alberto Alencar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Game

Uploaded by

Alberto Alencar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

#!/usr/bin/env python #-*- coding:utf-8 -*import sys import pygame class Object: def __init__(self, img_path, screen): self.

surface = pygame.image.load(img_path) self.rect = self.surface.get_rect() self.screen = screen self.box = screen.get_size() self._speed = 1 self.speed = 1 self.accel = .0 self.control = {'type':1, 'target':None} def move(self, dirs=None): if not self.collided(): if self.control['type'] == 1: if not any(dirs): self.stop() if dirs[pygame.K_UP]: self.rect = self.rect.move((0,-self.spee d)) if dirs[pygame.K_DOWN]: self.rect = self.rect.move((0,self.speed )) if dirs[pygame.K_LEFT]: self.rect = self.rect.move((-self.speed, 0)) if dirs[pygame.K_RIGHT]: self.rect = self.rect.move((self.speed,0 )) elif self.control['type'] == 2: target = self.control['target'] touched = 0 if self.rect.top > target.rect.bottom: self.rect = self.rect.move((0,-self.spee d)) else: touched += 1 if self.rect.bottom < target.rect.top: self.rect = self.rect.move((0,self.speed )) else: touched += 1 if self.rect.left > target.rect.right: self.rect = self.rect.move((-self.speed, 0)) else: touched += 1 if self.rect.right < target.rect.left: self.rect = self.rect.move((self.speed,0 )) else: touched += 1 if touched==4: self.stop() self.speed += self.accel else: self.stop() def collided(self): if self.rect.right > self.box[0]: self.rect.right -= self._speed return True if self.rect.left < 0: self.rect.left += self._speed

return True if self.rect.bottom > self.box[1]: self.rect.bottom -= self._speed return True if self.rect.top < 0: self.rect.top += self._speed return True return False def stop(self): self.speed = self._speed def update(self): self.screen.blit(self.surface, self.rect) if __name__ == '__main__': pygame.init() screensize = 400, 300 screen = pygame.display.set_mode(screensize) obj1 = Object("/usr/share/icons/hicolor/"\ "48x48/apps/gdu-emblem-raid0.png", scr een) obj1.accel = 0.05 obj2 = Object("/usr/share/icons/hicolor/"\ "48x48/apps/gdu-emblem-raid1.png", scr een) obj2.accel = 0.02 obj2.rect.bottom += screensize[1]/2 obj2.control['type'] = 2 obj2.control['target'] = obj1 while True: event = pygame.event.poll() if event.type == pygame.QUIT: sys.exit(0) key_status = pygame.key.get_pressed() obj1.move(key_status) obj2.move() screen.fill((255,255,255)) obj1.update() obj2.update() pygame.time.wait(30) pygame.display.flip()

You might also like