Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.83 KB | None | 0 0
  1. from random import choice, randrange
  2. from time import time
  3. from actor import Actor, Arena
  4.  
  5.  
  6.  
  7. class Rover(Actor):
  8.     def __init__(self, arena, pos):
  9.         self._x, self._y = pos
  10.         self._w, self._h = 32, 23
  11.         self._speed = 2
  12.         self._dx, self._dy = 0, 0
  13.         self._lives = 3
  14.         self._last_collision = 0
  15.         self._arena = arena
  16.         arena.add(self)
  17.  
  18.     def move(self):
  19.         arena_w, arena_h = self._arena.size()
  20.         self._y += self._dy
  21.         if self._y < 0:
  22.             self._y = 0
  23.         elif self._y > arena_h - self._h:
  24.             self._y = arena_h - self._h
  25.  
  26.         self._x += self._dx
  27.         if self._x < 0:
  28.             self._x = 0
  29.         elif self._x > arena_w - self._w:
  30.             self._x = arena_w - self._w
  31.  
  32.     def go_left(self, go: bool):
  33.         if go:
  34.             self._dx = -self._speed
  35.         elif self._dx < 0:
  36.             self._dx = 0
  37.  
  38.     def go_right(self, go: bool):
  39.         if go:
  40.             self._dx = self._speed
  41.         elif self._dx > 0:
  42.             self._dx = 0
  43.  
  44.     def go_up(self, go: bool):
  45.         if go:
  46.             self._dy = -self._speed
  47.         elif self._dy < 0:
  48.             self._dy = self._speed +0.4
  49.  
  50.     def go_down(self, go: bool):
  51.         if go:
  52.             self._dy = self._speed
  53.         elif self._dy > 0:
  54.             self._dy = self._speed +0.4
  55.  
  56.     def lives(self) -> int:
  57.         return self._lives
  58.  
  59.     def collide(self, other):
  60.         if time() - self._last_collision < 2:
  61.             return
  62.         self._last_collision = time()
  63.         if isinstance(other, Ghost):
  64.             self._lives = 0
  65.         elif isinstance(other, Ball):
  66.             self._lives -= 1
  67.  
  68.     def position(self):
  69.         return self._x, self._y, self._w, self._h
  70.  
  71.     def symbol(self):
  72.         return 212, 158, self._w, self._h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement