mouse controls
This commit is contained in:
parent
de3dece645
commit
3c71322b99
1 changed files with 92 additions and 45 deletions
137
r3.py
137
r3.py
|
@ -14,6 +14,14 @@ pygame.display.set_caption('The Red Robot Radio - Virtualx Game Engine')
|
||||||
font = pygame.font.Font(None, 30)
|
font = pygame.font.Font(None, 30)
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
FPS = 60
|
FPS = 60
|
||||||
|
ax = 0
|
||||||
|
ay = 0
|
||||||
|
bx = 0
|
||||||
|
by = 0
|
||||||
|
cx = 0
|
||||||
|
cy = 0
|
||||||
|
dx = 0
|
||||||
|
dy = 0
|
||||||
BLACK = (0, 0, 0)
|
BLACK = (0, 0, 0)
|
||||||
#WHITE = (255, 255, 255)
|
#WHITE = (255, 255, 255)
|
||||||
pygame.mixer.music.load('music/space.ogg')
|
pygame.mixer.music.load('music/space.ogg')
|
||||||
|
@ -53,6 +61,8 @@ class Antenna(pygame.sprite.Sprite):
|
||||||
#self.image.fill(WHITE)
|
#self.image.fill(WHITE)
|
||||||
self.rect = self.image.get_rect() # Get rect of some size as 'image'.
|
self.rect = self.image.get_rect() # Get rect of some size as 'image'.
|
||||||
self.velocity = [0, 0]
|
self.velocity = [0, 0]
|
||||||
|
def update(self):
|
||||||
|
self.rect.move_ip(*self.velocity)
|
||||||
class Player(pygame.sprite.Sprite):
|
class Player(pygame.sprite.Sprite):
|
||||||
def __init__(self,xset,yset):
|
def __init__(self,xset,yset):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
|
@ -77,7 +87,7 @@ class Wallh(pygame.sprite.Sprite):
|
||||||
self.rect = pygame.Rect(self.x,self.y,50, 1000)
|
self.rect = pygame.Rect(self.x,self.y,50, 1000)
|
||||||
self.velocity = [0, 0]
|
self.velocity = [0, 0]
|
||||||
def update(self):
|
def update(self):
|
||||||
self.rect.move_ip(*self.velocity)
|
self.rect.move_ip(bx, by)
|
||||||
class Wallv(pygame.sprite.Sprite):
|
class Wallv(pygame.sprite.Sprite):
|
||||||
def __init__(self,xset,yset):
|
def __init__(self,xset,yset):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
|
@ -89,7 +99,7 @@ class Wallv(pygame.sprite.Sprite):
|
||||||
self.rect = pygame.Rect(self.x,self.y,3400, 50)
|
self.rect = pygame.Rect(self.x,self.y,3400, 50)
|
||||||
self.velocity = [0, 0]
|
self.velocity = [0, 0]
|
||||||
def update(self):
|
def update(self):
|
||||||
self.rect.move_ip(*self.velocity)
|
self.rect.move_ip(bx, by)
|
||||||
class Css(pygame.sprite.Sprite):
|
class Css(pygame.sprite.Sprite):
|
||||||
def __init__(self,xset,yset):
|
def __init__(self,xset,yset):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
|
@ -102,7 +112,7 @@ class Css(pygame.sprite.Sprite):
|
||||||
self.rect = pygame.Rect(self.x,self.y,108, 68)
|
self.rect = pygame.Rect(self.x,self.y,108, 68)
|
||||||
self.velocity = [0, 0]
|
self.velocity = [0, 0]
|
||||||
def update(self):
|
def update(self):
|
||||||
self.rect.move_ip(*self.velocity)
|
self.rect.move_ip(bx, by)
|
||||||
class Sat(pygame.sprite.Sprite):
|
class Sat(pygame.sprite.Sprite):
|
||||||
def __init__(self,xset,yset):
|
def __init__(self,xset,yset):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
|
@ -115,7 +125,7 @@ class Sat(pygame.sprite.Sprite):
|
||||||
self.rect = pygame.Rect(self.x,self.y,30, 22)
|
self.rect = pygame.Rect(self.x,self.y,30, 22)
|
||||||
self.velocity = [0, 0]
|
self.velocity = [0, 0]
|
||||||
def update(self):
|
def update(self):
|
||||||
self.rect.move_ip(*self.velocity)
|
self.rect.move_ip(bx, by)
|
||||||
class Goal(pygame.sprite.Sprite):
|
class Goal(pygame.sprite.Sprite):
|
||||||
def __init__(self,xset,yset):
|
def __init__(self,xset,yset):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
|
@ -128,8 +138,8 @@ class Goal(pygame.sprite.Sprite):
|
||||||
self.rect = pygame.Rect(self.x,self.y,69, 120)
|
self.rect = pygame.Rect(self.x,self.y,69, 120)
|
||||||
self.velocity = [0, 0]
|
self.velocity = [0, 0]
|
||||||
def update(self):
|
def update(self):
|
||||||
self.rect.move_ip(*self.velocity)
|
self.rect.move_ip(bx, by)
|
||||||
class Ast(pygame.sprite.Sprite):
|
class Ast1(pygame.sprite.Sprite):
|
||||||
def __init__(self,xset,yset):
|
def __init__(self,xset,yset):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
self.x = xset
|
self.x = xset
|
||||||
|
@ -141,16 +151,42 @@ class Ast(pygame.sprite.Sprite):
|
||||||
self.rect = pygame.Rect(self.x,self.y,108, 78)
|
self.rect = pygame.Rect(self.x,self.y,108, 78)
|
||||||
self.velocity = [0, 0]
|
self.velocity = [0, 0]
|
||||||
def update(self):
|
def update(self):
|
||||||
self.rect.move_ip(*self.velocity)
|
self.rect.move_ip(cx, cy)
|
||||||
|
class Ast2(pygame.sprite.Sprite):
|
||||||
|
def __init__(self,xset,yset):
|
||||||
|
pygame.sprite.Sprite.__init__(self)
|
||||||
|
self.x = xset
|
||||||
|
self.y = yset
|
||||||
|
self.image = pygame.image.load('sprites/asteroid.png')
|
||||||
|
#self.image = pygame.Surface((32, 32))
|
||||||
|
#self.image.fill(WHITE)
|
||||||
|
#self.rect = self.image.get_rect() # Get rect of some size as 'image'.
|
||||||
|
self.rect = pygame.Rect(self.x,self.y,108, 78)
|
||||||
|
self.velocity = [0, 0]
|
||||||
|
def update(self):
|
||||||
|
self.rect.move_ip(dx, dy)
|
||||||
|
class Ast3(pygame.sprite.Sprite):
|
||||||
|
def __init__(self,xset,yset):
|
||||||
|
pygame.sprite.Sprite.__init__(self)
|
||||||
|
self.x = xset
|
||||||
|
self.y = yset
|
||||||
|
self.image = pygame.image.load('sprites/asteroid.png')
|
||||||
|
#self.image = pygame.Surface((32, 32))
|
||||||
|
#self.image.fill(WHITE)
|
||||||
|
#self.rect = self.image.get_rect() # Get rect of some size as 'image'.
|
||||||
|
self.rect = pygame.Rect(self.x,self.y,108, 78)
|
||||||
|
self.velocity = [0, 0]
|
||||||
|
def update(self):
|
||||||
|
self.rect.move_ip(ax, ay)
|
||||||
player = Player(346,206)
|
player = Player(346,206)
|
||||||
css1 = Css(483,262)
|
css1 = Css(483,262)
|
||||||
css2 = Css(500,400)
|
css2 = Css(500,400)
|
||||||
sat1 = Sat(550,-100)
|
sat1 = Sat(550,-100)
|
||||||
sat2 = Sat(600,100)
|
sat2 = Sat(600,100)
|
||||||
goal = Goal(3000,-100)
|
goal = Goal(3000,-100)
|
||||||
ast1 = Ast(120,200)
|
ast1 = Ast1(120,200)
|
||||||
ast2 = Ast(300,100)
|
ast2 = Ast2(300,100)
|
||||||
ast3 = Ast(500,150)
|
ast3 = Ast3(500,150)
|
||||||
wall1 = Wallh(-100,-200)
|
wall1 = Wallh(-100,-200)
|
||||||
wall2 = Wallh(3100,-200)
|
wall2 = Wallh(3100,-200)
|
||||||
wall3 = Wallv(-200,-200)
|
wall3 = Wallv(-200,-200)
|
||||||
|
@ -161,16 +197,14 @@ antenna = Antenna()
|
||||||
running = True
|
running = True
|
||||||
live = True
|
live = True
|
||||||
complete = False
|
complete = False
|
||||||
ax = 0
|
|
||||||
ay = 0
|
|
||||||
bx = 0
|
|
||||||
by = 0
|
|
||||||
debug = False # This set debug mode
|
debug = False # This set debug mode
|
||||||
|
pygame.mouse.set_visible(False)
|
||||||
#rect = pygame.Rect((0, 0), (32, 32))
|
#rect = pygame.Rect((0, 0), (32, 32))
|
||||||
#image = pygame.Surface((32, 32))
|
#image = pygame.Surface((32, 32))
|
||||||
#image.fill(WHITE)
|
#image.fill(WHITE)
|
||||||
start_time = pygame.time.get_ticks()
|
start_time = pygame.time.get_ticks()
|
||||||
runtime = 0
|
runtime = 0
|
||||||
|
pygame.event.set_grab(True)
|
||||||
while running:
|
while running:
|
||||||
dt = clock.tick(FPS) / 1000
|
dt = clock.tick(FPS) / 1000
|
||||||
#screen.fill(BLACK)
|
#screen.fill(BLACK)
|
||||||
|
@ -207,9 +241,9 @@ while running:
|
||||||
sat1 = Sat(550,-100)
|
sat1 = Sat(550,-100)
|
||||||
sat2 = Sat(600,100)
|
sat2 = Sat(600,100)
|
||||||
goal = Goal(3000,-100)
|
goal = Goal(3000,-100)
|
||||||
ast1 = Ast(120,200)
|
ast1 = Ast1(120,200)
|
||||||
ast2 = Ast(300,100)
|
ast2 = Ast2(300,100)
|
||||||
ast3 = Ast(500,150)
|
ast3 = Ast3(500,150)
|
||||||
wall1 = Wallh(-100,-200)
|
wall1 = Wallh(-100,-200)
|
||||||
wall2 = Wallh(3100,-200)
|
wall2 = Wallh(3100,-200)
|
||||||
wall3 = Wallv(-200,-200)
|
wall3 = Wallv(-200,-200)
|
||||||
|
@ -218,6 +252,8 @@ while running:
|
||||||
complete = False
|
complete = False
|
||||||
pygame.mixer.music.play(-1)
|
pygame.mixer.music.play(-1)
|
||||||
start_time = pygame.time.get_ticks()
|
start_time = pygame.time.get_ticks()
|
||||||
|
elif event.key == pygame.K_ESCAPE:
|
||||||
|
quit()
|
||||||
elif event.type == pygame.KEYUP:
|
elif event.type == pygame.KEYUP:
|
||||||
if event.key == pygame.K_w:
|
if event.key == pygame.K_w:
|
||||||
by = 0
|
by = 0
|
||||||
|
@ -227,21 +263,32 @@ while running:
|
||||||
bx = 0
|
bx = 0
|
||||||
elif event.key == pygame.K_d:
|
elif event.key == pygame.K_d:
|
||||||
bx = 0
|
bx = 0
|
||||||
|
if event.type == pygame.MOUSEMOTION:
|
||||||
|
pygame.mouse.set_pos([400, 240])
|
||||||
|
ax, ay = event.rel
|
||||||
|
bx = ax * 20
|
||||||
|
by = ay * 20
|
||||||
|
cx = ax * 4
|
||||||
|
cy = ay * 4
|
||||||
|
dx = ax * 2
|
||||||
|
dy = ay * 2
|
||||||
|
|
||||||
|
|
||||||
if live:
|
if live:
|
||||||
runtime = pygame.time.get_ticks() - start_time
|
runtime = pygame.time.get_ticks() - start_time
|
||||||
if (live & debug == False):
|
if (live & debug == False):
|
||||||
if pygame.sprite.collide_rect(background, wall3):
|
#if pygame.sprite.collide_rect(background, wall3):
|
||||||
if by < 0:
|
# if by < 0:
|
||||||
by = 0
|
# by = 0
|
||||||
elif pygame.sprite.collide_rect(background, wall4):
|
#elif pygame.sprite.collide_rect(background, wall4):
|
||||||
if by > 0:
|
# if by > 0:
|
||||||
by = 0
|
# by = 0
|
||||||
if pygame.sprite.collide_rect(background, wall1):
|
#if pygame.sprite.collide_rect(background, wall1):
|
||||||
if bx < 0:
|
# if bx < 0:
|
||||||
bx = 0
|
# bx = 0
|
||||||
elif pygame.sprite.collide_rect(background, wall2):
|
#elif pygame.sprite.collide_rect(background, wall2):
|
||||||
if bx > 0:
|
# if bx > 0:
|
||||||
bx = 0
|
# bx = 0
|
||||||
if pygame.sprite.collide_rect(player, css1):
|
if pygame.sprite.collide_rect(player, css1):
|
||||||
live = False
|
live = False
|
||||||
pygame.mixer.music.stop()
|
pygame.mixer.music.stop()
|
||||||
|
@ -265,22 +312,22 @@ while running:
|
||||||
lcfx.play()
|
lcfx.play()
|
||||||
#player.velocity[0] = int(600 * dt * (ax - bx))
|
#player.velocity[0] = int(600 * dt * (ax - bx))
|
||||||
#player.velocity[1] = int(600 * dt * (ay - by))
|
#player.velocity[1] = int(600 * dt * (ay - by))
|
||||||
css1.velocity[0] = int(-600 * dt * bx)
|
#css1.velocity[0] = int(-600 * dt * bx)
|
||||||
css1.velocity[1] = int(-600 * dt * by)
|
#css1.velocity[1] = int(-600 * dt * by)
|
||||||
css2.velocity = css1.velocity
|
#css2.velocity = css1.velocity
|
||||||
sat1.velocity = css1.velocity
|
#sat1.velocity = css1.velocity
|
||||||
sat2.velocity = css1.velocity
|
#sat2.velocity = css1.velocity
|
||||||
goal.velocity = css1.velocity
|
#goal.velocity = css1.velocity
|
||||||
wall1.velocity = css1.velocity
|
#wall1.velocity = css1.velocity
|
||||||
wall2.velocity = css1.velocity
|
#wall2.velocity = css1.velocity
|
||||||
wall3.velocity = css1.velocity
|
#wall3.velocity = css1.velocity
|
||||||
wall4.velocity = css1.velocity
|
#wall4.velocity = css1.velocity
|
||||||
ast1.velocity[0] = int(-200 * dt * bx)
|
#ast1.velocity[0] = int(-200 * dt * bx)
|
||||||
ast1.velocity[1] = int(-200 * dt * by)
|
#ast1.velocity[1] = int(-200 * dt * by)
|
||||||
ast2.velocity[0] = int(-150 * dt * bx)
|
#ast2.velocity[0] = int(-150 * dt * bx)
|
||||||
ast2.velocity[1] = int(-150 * dt * by)
|
#ast2.velocity[1] = int(-150 * dt * by)
|
||||||
ast3.velocity[0] = int(-120 * dt * bx)
|
#ast3.velocity[0] = int(-120 * dt * bx)
|
||||||
ast3.velocity[1] = int(-120 * dt * by)
|
#ast3.velocity[1] = int(-120 * dt * by)
|
||||||
player.update()
|
player.update()
|
||||||
css1.update()
|
css1.update()
|
||||||
css2.update()
|
css2.update()
|
||||||
|
|
Loading…
Reference in a new issue