Пример #1
0
def init(g, r, p, big=False):
    if not hasattr(g, 'bubble_count'):
        g.bubble_count = 0
    if g.bubble_count >= 3:
        return None
    g.bubble_count += 1
    print 'new bubble', g.bubble_count
    if not big:
        s = sprite.Sprite3(g, r, 'bubble', (0, 0, 7, 7))
    else:
        s = sprite.Sprite3(g, r, 'big-bubble', (0, 0, 16, 16))
    s.big = big
    s.rect.centerx = r.centerx
    s.rect.centery = r.centery
    s.groups.add('solid')
    s.groups.add('bubble')
    s.hit_groups.add('enemy')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.life = 30
    s.strength = 1
    s.deinit = deinit
    if big: s.strength = 3

    s.vx = 1
    if p.facing == 'left':
        s.vx = -1
    s.vy = 0
    s.rect.centerx += s.vx * (6 + s.rect.width / 2)
    s.rect.centery -= 4

    g.game.sfx['bubble'].play()

    return s
Пример #2
0
def init(g, r, p):
    s = sprite.Sprite3(g, r, 'shoots/%s-draco-shoot' % (p.facing),
                       (0, 0, 5, 5))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery

    s.groups.add('solid')
    s.groups.add('enemyshoot')
    s.hit_groups.add('player')

    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.life = 70
    s.strength = 3
    s.damage = 1

    s.vx = 1
    if p.facing == 'left':
        s.vx = -1
    s.vy = 1
    s.rect.centerx += s.vx * (0 + s.rect.width / 2)
    s.rect.centery += 6

    return s
Пример #3
0
def init(g, r, n, drone):
    s = sprite.Sprite3(g, r, "drone/%s-0" % drone, (0, 0, 7, 7))

    s.drone = drone

    s.player = n
    s.rect.bottom = r.bottom - 32
    s.rect.centerx = r.centerx

    s.groups.add('solid')
    g.sprites.append(s)

    s.loop = loop

    s.facing = "right"

    s.shoot = 100
    s.shooting = 0

    s.x_pid = PID(3.0, 0.4, 1.2)
    s.y_pid = PID(3.0, 0.4, 1.2)

    s.vx = 0
    s.vy = 0

    s.max_speed_x = 1.0
    s.max_speed_y = 1.0

    s._prev = pygame.Rect(-1, -1, 0, 0)

    s.standing = None

    return s
Пример #4
0
def init(g, r):
    #print 'new capsule bubble'

    s = sprite.Sprite3(g, r, 'captured-generic', (0, 0, 16, 16))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery
    s.hit_groups.add('player')
    s.groups.add('capsule')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.life = 300

    s.vx = (g.game.random % 10) / 10.0 - 0.5  #random.random() - 0.5
    s.vy = -0.5
    s.x = float(s.rect.x)
    #s.y = float(s.rect.y)

    s.carrying = []
    s.prev = pygame.Rect(s.rect)

    g.game.sfx['capsule'].play()
    s.type = 'capsule'

    return s
Пример #5
0
def init(g, r, n, vx, *params):
    s = sprite.Sprite3(g, r, 'parrot/left-0', (0, 3, 24, 10))  #3
    #s.rect.bottom = r.bottom
    s.rect.centery = r.centery
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.vx = vx
    s.vy = 0

    s.facing = 'right'
    if s.vx < 0:
        s.facing = 'left'

    s._prev = None  # pygame.Rect(s.rect)
    s.strength = 3

    #s.standing = None
    s.type = 'parrot'
    return s
Пример #6
0
def init(g, r, n, vx, *params):
    s = sprite.Sprite3(g, r, 'spiner/left-0', (0, 0, 16, 16))
    # s.rect.bottom = r.bottom
    s.rect.centery = r.centery
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.vx = vx
    s.vy = 0

    s.facing = 'right'
    if s.vx < 0:
        s.facing = 'left'

    s._prev = None  # pygame.Rect(s.rect)
    s.strength = 3
    s.damage = 1

    # s.standing = None
    return s
Пример #7
0
def init(g, r, p):
    s = sprite.Sprite3(g, r, 'shoots/%s-tower-shoot' % (p.facing),
                       (0, 0, 13, 7))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery

    s.groups.add('solid')
    s.groups.add('towershoot')
    # s.groups.add('enemy')
    s.hit_groups.add('player')

    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.life = 90
    s.strength = 1
    s.damage = 1
    # if big: s.strength = 3

    s.vx = 1
    if p.facing == 'left':
        s.vx = -1
    s.vy = 0
    s.rect.centerx += s.vx * (0 + s.rect.width / 2)
    s.rect.centery -= 7

    return s
Пример #8
0
def init(g, r, n, vx, *params):
    s = sprite.Sprite3(g, r, 'frog/walk-right-0', (8, 4, 8, 18))  # (1,1,22,22))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.next_frame = 12
    s.frame = 0
    s.vx = vx
    s.vy = 0
    s.jumping = False
    s.walking = True
    # make sure this is always different at startup
    s._prev = None

    s.strength = 3
    s.damage = 1
    s.vy_jump = 0

    s.standing = None
    return s
Пример #9
0
def init(g,r,p):
    s = sprite.Sprite3(g,r,'laser',(0,0,4,2))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery

    s.groups.add('solid')
    s.groups.add('laser')
    #s.groups.add('enemy')
    s.hit_groups.add('player')

    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.life = 90
    s.strength = 1
    #if big: s.strength = 3
    
    s.vx = 1
    if p.facing == 'left':
        s.vx = -1
    s.vy = 0
    s.rect.centerx += s.vx*(6+s.rect.width/2)
    s.rect.centery -= 2
    
    return s
Пример #10
0
def init(g, r, p):
    s = sprite.Sprite3(g, r, 'shoots/laser', (0, 0, 4, 2))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery

    s.groups.add('solid')
    s.groups.add('enemyshoot')
    s.hit_groups.add('player')

    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.life = 180
    s.strength = 1
    s.damage = 1

    s.vx = 2
    if p.facing == 'left':
        s.vx = -2
    s.vy = 0
    s.rect.centerx += s.vx * (4 + s.rect.width / 2)
    s.rect.centery -= 0

    return s
Пример #11
0
def init(g, r, n, facing='left', *params):
    s = sprite.Sprite3(g, r, 'shootbot-%s-0' % (facing), (0, 0, 18, 24))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.facing = facing

    s.shoot = 120
    s.shooting = 0

    if s.facing == 'left':
        s.vx = -1.0
    else:
        s.vx = 1.0
    s.vy = 0

    s._prev = pygame.Rect(-1, -1, 0, 0)
    s.strength = 3

    s.standing = None
    return s
Пример #12
0
def init(g, r, n, facing, *params):
    s = sprite.Sprite3(g, r, 'brobo-%s-0' % (facing), (0, 0, 30, 37))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.facing = facing

    #s.shoot = 0

    if s.facing == 'left':
        s.vx = -0.2
    else:
        s.vx = 0.2
    s.vy = 0

    s._prev = None  #pygame.Rect(-1,-1,0,0)
    s.strength = 6

    s.standing = None
    s.type = 'brobo'
    return s
def init(g, r, n, *params):
    s = sprite.Sprite3(g, r, 'fireguy-right-0', (0, 0, 14, 23))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.moving = 0
    s.idling = 240

    s.frame = 0

    s.facing = 'right'

    s.vx = 0
    s.vy = 0

    s._prev = pygame.Rect(s.rect)
    s.strength = 3

    s.standing = None
    s.type = 'fireguy'
    return s
Пример #14
0
def init(g, r, p):
    s = sprite.Sprite3(g, r, 'shoots/tentactulshoot', (0, 0, 8, 4))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery

    s.groups.add('solid')
    s.groups.add('tentactulshoot')
    #s.groups.add('enemy')
    s.hit_groups.add('player')

    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.life = 90
    s.strength = 1
    #if big: s.strength = 3

    s.vx = 1
    if p.facing == 'left':
        s.vx = -2
    s.vy = 0
    s.rect.centerx += s.vx * (1 + s.rect.width / 2)
    s.rect.centery -= -7

    return s
Пример #15
0
def init(g, r, n, *params):
    s = sprite.Sprite3(g, r, 'zombie/zombie-right-0', (0, 0, 16, 32))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.moving = 0
    #s.idling = 240
    s.idling = random.randint(120, 240)

    s.frame = 0

    s.facing = 'right'

    s.vx = 0
    s.vy = 0

    s._prev = pygame.Rect(s.rect)
    s.strength = 6

    s.standing = None
    return s
Пример #16
0
def init(g, r, n, facing='left', *params):
    s = sprite.Sprite3(g, r, 'zombie/walk-%s-0' % facing, (0, 0, 16, 32))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.next_frame = 12
    s.frame = 0
    s.facing = facing
    s.frame_speed = 10
    s.speed = 2

    s.vx = 1.0

    if s.facing == 'left':
        s.vx = -s.vx
    else:
        s.vx = s.vx

    s.vy = 0
    s.jumping = False
    s.walking = True
    # make sure this is always different at startup
    s._prev = None

    s.strength = 7
    s.damage = 2
    s.vy_jump = -5

    s.standing = None
    return s
Пример #17
0
def init(g, r, p, big=False):
    s = sprite.Sprite3(g, r, 'fireball', (0, 0, 16, 16))
    s.big = big
    if p.facing == 'left':
        s.rect.centerx = r.x + 34 - 27
        s.rect.centery = r.y + 83 - 62
    else:
        s.rect.centerx = r.right - 34 + 27
        s.rect.centery = r.y + 83 - 62
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.insert(0, s)
    s.loop = loop
    s.life = 600
    s.strength = 1
    s.standing = None

    s.bounces = 3

    s.vx = 0.2
    if p.facing == 'left':
        s.vx = -0.2

    s.vx += p.vx
    s.vy = 0

    # g.game.sfx['bubble'].play()

    return s
Пример #18
0
def init(g, r, n, facing='left', *params):
    s = sprite.Sprite3(g, r, 'draco/draco-%s' % (facing), (0, 0, 10, 16))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.facing = facing

    s.shoot = 250
    s.shooting = 0

    if s.facing == 'left':
        s.vx = 0
    else:
        s.vx = 0
    s.vy = 0

    s._prev = pygame.Rect(-1, -1, 0, 0)
    s.strength = 6
    s.damage = 1

    s.standing = None
    return s
Пример #19
0
def init(g, r, n, facing='left', *params):
    s = sprite.Sprite3(g, r, 'bat/fly-%s-0' % facing, (0, 0, 16, 16))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.next_frame = 12
    s.frame = 0
    s.facing = facing

    s.vx = 1.8

    if s.facing == 'left':
        s.vx = -s.vx
    else:
        s.vx = s.vx

    s.vy = 0
    s.attacking = False
    s.flying = True
    # make sure this is always different at startup
    s._prev = None

    s.strength = 6
    s.damage = 1
    s.vy_attack = 0

    s.standing = None
    return s
Пример #20
0
def init(g, r, p):
    s = sprite.Sprite3(g, r, 'shoots/%s-wibertshoot' % p.facing, (0, 0, 5, 5))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery

    s.groups.add('solid')
    s.groups.add('enemyshoot')
    s.hit_groups.add('player')

    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    s.life = 90
    s.strength = 1
    s.damage = 1

    s.vx = 1
    if p.facing == 'left':
        s.vx = -1
    s.vy = -1.6
    s.rect.centerx += s.vx * (9 + s.rect.width / 2)
    s.rect.centery -= 11

    return s
Пример #21
0
def init(g, r, n, *params):

    s = sprite.Sprite3(g, r, 'ship/ship-0', (0, 0, 48, 64))
    s.rect.centerx = r.centerx
    s.rect.centery = r.centery - (32 - 16) / 2
    s.loop = loop

    g.sprites.insert(0, s)

    return s
Пример #22
0
def bub_init(g, r):
    s = sprite.Sprite3(g, r, 'big-shoot', (0, 0, 16, 16))

    s.rect.centerx = r.centerx
    s.rect.centery = r.centery
    g.sprites.append(s)
    s.loop = bub_loop

    v = random.randint(8, 32)
    a = random.randint(0, 360) * 6.28 / 360
    s.vx = math.sin(a) * v
    s.vy = math.cos(a) * v
    s.frame = random.randint(0, FPS * 2)
    return s
Пример #23
0
def init(g, r, n, hidden=False, *params):
    s = sprite.Sprite3(g, r, 'door-1', (0, 0, 16, 24))  #3
    s.rect.centerx = r.centerx
    s.rect.centery = r.centery - (24 - 16) / 2
    s.loop = loop
    s.hit = sprite_hit
    s.frame = 0
    s.open = None
    s.hit_groups.add('player')
    s.hidden = hidden
    if hidden:
        s.image = None
    #s.hit = hit
    g.sprites.insert(0, s)
    return s
Пример #24
0
def init(g,r,n,*params):
    s = sprite.Sprite3(g,r,3,(0,0,16,16))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    
    s.vx = 1
    s.vy = 1
    
    s._prev = pygame.Rect(s.rect)
    s.strength = 3
    
    s.standing = None
    return s
Пример #25
0
def init(g, r, n, facing, *params):
    s = sprite.Sprite3(g, r, 'panda-%s' % (facing), (0, 0, 16, 32))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.vx = 0
    s.vy = 0

    #s._prev = pygame.Rect(s.rect)
    s.strength = 30000

    s.standing = None
    return s
Пример #26
0
def init(g, r, n, *params):
    s = sprite.Sprite3(
        g, r, 'player/right',
        (5, 10, 9, 20))  #(0,0,19,25))#(43-14,8,28,48))#left,top,width,height
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('player')
    s.groups.add('solid')
    g.sprites.append(s)
    s.loop = loop
    s.vx = 0
    s.vy = 0
    s.walk_frame = 1
    s.jumping = 0
    s.facing = 'right'
    s.flash_counter = 0
    s.flash_timer = 0
    s.shooting = 0
    s.powered_up = False
    if hasattr(g.game, 'powerup'):
        s.powered_up = g.game.powerup
    s.powerup_transition = 0
    s.door_timer = None
    s.current_door = None
    s.door_pos = None
    g.player = s
    s.event = event
    s.pan = pan_screen
    s.damage = damage
    s.kill = kill
    s.god_mode = False
    s.death_counter = -1

    s._prev = pygame.Rect(s.rect)
    s._prev2 = pygame.Rect(s.rect)
    s.looking = False

    sprite.init_bounds(g, s)
    sprite.init_view(g, s)
    sprite.init_codes(g, s)
    s.no_explode = False

    return s
Пример #27
0
def init(g, r, n, hidden=False, *params):
    door_type = levels.LEVELS[g.game.lcur][2]

    s = sprite.Sprite3(g, r, 'doors/door-close-%d' % door_type,
                       (0, 0, 16, 32))  # 3
    s.rect.centerx = r.centerx
    s.rect.centery = r.centery - (32 - 16) / 2
    s.loop = loop
    s.hit = sprite_hit
    s.open = None
    s.hit_groups.add('player')
    s.hidden = hidden
    if hidden:
        s.image = None
    # s.hit = hit
    g.sprites.insert(0, s)

    s.door_type = door_type

    return s
Пример #28
0
def init(g, r, n, vx, vy):
    platform_type = levels.LEVELS[g.game.lcur][2]

    x, y = r.centerx / TW, r.centery / TH
    code = g.data[2][y][x]
    min_x = x
    max_x = x
    for dx in xrange(1, 4):
        if g.data[2][y][x + dx] != code: break
        max_x = x + dx
    for dx in xrange(-1, -4, -1):
        if g.data[2][y][x + dx] != code: break
        min_x = x + dx

    iy = y
    for ix in xrange(min_x, max_x + 1):
        if (ix, iy) in g.codes:
            return

    w, h = (max_x - min_x + 1) * TW, TH
    r = pygame.Rect(min_x * TW, iy * TH, w, h)

    s = sprite.Sprite3(g, r,
                       'platform/%d-%d' % ((max_x - min_x + 1), platform_type),
                       (0, 0, w, h))
    # s.rect.bottom = r.bottom
    # s.rect.centerx = r.centerx
    s.groups.add('solid')
    # s.groups.add('platform')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.vx = vx
    s.vy = vy

    s._prev = None
    s.carrying = []

    return s
Пример #29
0
def init(g, r, n, *params):
    s = sprite.Sprite3(g, r, 'blob', (0, 0, 13, 11))
    s.rect.bottom = r.bottom
    s.rect.centerx = r.centerx
    s.groups.add('solid')
    s.groups.add('enemy')
    s.hit_groups.add('player')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop

    s.vx = 0
    s.vy = 0

    s.next_jump = 0  # next_jump = 0

    s._prev = pygame.Rect(s.rect)
    s.strength = 3

    s.standing = None
    return s
Пример #30
0
def init(g, r, n, *params):
    s = sprite.Sprite3(g, r, 'boss/left-0', (27, 62, 75, 39))  #3
    #s.rect.bottom = r.bottom
    s.rect.centery = r.centery
    s.rect.centerx = r.centerx
    #s.groups.add('solid')
    s.groups.add('boss')
    #s.groups.add('enemy')
    s.hit_groups.add('capsule')
    s.hit = hit
    g.sprites.append(s)
    s.loop = loop
    g.boss = s

    s.vx = -0.7
    s.vy = 0

    s.auto_gc = False

    s.phase = 1
    s.phase_frames = 0

    s.taking_damage = 0

    s.dying = None
    s.dead = False

    s.drop = 120

    s.facing = 'right'
    if s.vx < 0:
        s.facing = 'left'

    s._prev = None  # pygame.Rect(s.rect)
    s.strength = 6

    s.type = 'boss'

    #s.standing = None
    return s