Beispiel #1
0
def play(postfn=None):
    global score, cities

    score = 0
    cities = NCITIES

    engine.add_obj(Ground(MINX, GROUNDY, MAXX, MINY))
    draw_score()

    draw_stars()

    # we built this city on rock and roll
    xcoords = list(range(MINX, MAXX, WIDTH // (NCITIES + 1)))[1:-1]
    for x in xcoords:
        engine.add_obj(City(x, GROUNDY))

    engine.add_random_event(NEWENEMYPROB, newenemy_cb)

    engine.register_collision(City, Enemy, coll_city1)
    engine.register_collision(Enemy, City, coll_city2)
    engine.register_collision(Ground, Enemy, coll_ground1)
    engine.register_collision(Enemy, Ground, coll_ground2)
    engine.register_collision(Enemy, Missile, coll_air2air)
    engine.register_collision(Missile, Enemy, coll_air2air)

    engine.register_collision(Ground, Missile, coll_groundnoboom1)
    engine.register_collision(Missile, Ground, coll_groundnoboom2)

    if postfn:
        postfn()
    engine.engine()
Beispiel #2
0
def play(postfn=None):
	global score, cities

	score = 0
	cities = NCITIES

	engine.add_obj(Ground(MINX, GROUNDY, MAXX, MINY))
	draw_score()

	draw_stars()

	# we built this city on rock and roll
	xcoords = list(range(MINX, MAXX, WIDTH // (NCITIES+1)))[1:-1]
	for x in xcoords:
		engine.add_obj(City(x, GROUNDY))

	engine.add_random_event(NEWENEMYPROB, newenemy_cb)

	engine.register_collision(City, Enemy, coll_city1)
	engine.register_collision(Enemy, City, coll_city2)
	engine.register_collision(Ground, Enemy, coll_ground1)
	engine.register_collision(Enemy, Ground, coll_ground2)
	engine.register_collision(Enemy, Missile, coll_air2air)
	engine.register_collision(Missile, Enemy, coll_air2air)

	engine.register_collision(Ground, Missile, coll_groundnoboom1)
	engine.register_collision(Missile, Ground, coll_groundnoboom2)

	if postfn:
		postfn()
	engine.engine()
Beispiel #3
0
def play(postfn=None):
    global s, score
    s = S()
    score = 0
    engine.add_obj(Ground(MINX, GROUNDY, MAXX, MINY))
    engine.add_random_event(0.002, Holes_cb)
    engine.add_random_event(0.007, Rocks_cb)
    engine.register_collision(Me, Holes, coll_Me)
    engine.register_collision(Holes, Me, coll_Me2)
    engine.register_collision(Me, Rocks, coll_Me)
    engine.register_collision(Rocks, Me, coll_Me2)
    engine.register_collision(Me, Rocks, coll_Me)
    engine.register_collision(Rocks, Me, coll_Me)
    engine.register_collision(missileside, Rocks, coll_missile)
    engine.register_collision(Rocks, missileside, coll_missile)

    draw_stars()
    draw_score()
    s.me = Me()
    engine.add_obj(s.me)

    s.playing = True
    if postfn:
        postfn()
    engine.engine()
Beispiel #4
0
def play():
    global s
    s = S()

    engine.init_engine()
    engine.set_keyboard_handler(input_cb)
    engine.add_random_event(1.0, newpipe_cb)
    engine.register_collision(Me, Pipe, coll_cb)
    engine.register_collision(Pipe, Me, coll_cb2)

    s.me = Me()
    engine.add_obj(s.me)

    s.playing = True
    engine.engine()
Beispiel #5
0
def play():
	global s
	s = S()

	engine.init_engine()
	engine.set_keyboard_handler(input_cb)
	engine.add_random_event(1.0, newpipe_cb)
	engine.register_collision(Me, Pipe, coll_cb)
	engine.register_collision(Pipe, Me, coll_cb2)

	s.me = Me()
	engine.add_obj(s.me)

	s.playing = True
	engine.engine()
Beispiel #6
0
def play():
	global s
	s = S()

	engine.init_engine()
	engine.set_keyboard_handler(input_cb)

	s.me = Me()
	engine.add_obj(s.me)
	
	engine.add_random_event(0.01, spawn_asteroid_cb)

	engine.register_collision(Asteroid, MyShot, col_asteroid)
	engine.register_collision(MyShot, Asteroid, col_asteroid2)
	engine.register_collision(Me, Asteroid, col_gameover)
	engine.register_collision(Asteroid, Me, col_gameover)

	draw_score()

	s.playing = True
	engine.engine()
Beispiel #7
0
def play():
    global s
    s = S()

    engine.init_engine()
    engine.set_keyboard_handler(input_cb)

    s.me = Me()
    engine.add_obj(s.me)

    engine.add_random_event(0.01, spawn_asteroid_cb)

    engine.register_collision(Asteroid, MyShot, col_asteroid)
    engine.register_collision(MyShot, Asteroid, col_asteroid2)
    engine.register_collision(Me, Asteroid, col_gameover)
    engine.register_collision(Asteroid, Me, col_gameover)

    draw_score()

    s.playing = True
    engine.engine()
Beispiel #8
0
def play():
	global s
	s = S()

	engine.init_engine()
	engine.set_keyboard_handler(input_cb)

	s.me = Me()
	engine.add_random_event(0.01, leftturn_straight_cb)
	engine.add_random_event(0.01, rightturn_straight_cb)
	engine.add_obj(s.me)

	place_default_post_cb()

	engine.register_collision(Me, Post, col_post)
	engine.register_collision(Post, Me, col_post2)

	draw_text()
	draw_score()

	s.playing = True
	engine.engine()
Beispiel #9
0
def play():
    global s
    s = S()

    engine.init_engine()
    engine.set_keyboard_handler(input_cb)

    s.me = Me()
    engine.add_random_event(0.01, leftturn_straight_cb)
    engine.add_random_event(0.01, rightturn_straight_cb)
    engine.add_obj(s.me)

    place_default_post_cb()

    engine.register_collision(Me, Post, col_post)
    engine.register_collision(Post, Me, col_post2)

    draw_text()
    draw_score()

    s.playing = True
    engine.engine()
Beispiel #10
0
def play():
	global s
	s = S()

	engine.init_engine()
	engine.set_keyboard_handler(input_cb)
	engine.add_obj(Ground(MINX, GROUNDY, MAXX, MINY))

	s.me = Me(0, GROUNDY + 10)
	engine.add_obj(s.me)

	# the grid o' evil
	for i in range(INVADERROWS):
		for j in range(INVADERCOLS):
			enemy = Invader(XGRIDSTART + j * INVADERHSPACE,
					YGRIDSTART - i * INVADERVSPACE,
					INVADERSPEED, 0)
			s.invaders.append(enemy)
			engine.add_obj(enemy)
	engine.add_random_event(FIREPROB, fire_cb)
	engine.add_random_event(UFOPROB, ufo_cb)

	# not quite so random - do this at start of each time step
	# order is important - if no invaders left, gridmove won't be happy
	engine.add_random_event(1.0, winlose_cb)
	engine.add_random_event(1.0, gridmove_cb)

	engine.register_collision(Ground, Bomb, coll_ground1)
	engine.register_collision(Bomb, Ground, coll_ground2)
	engine.register_collision(UFO, MyShot, coll_air2air_bonus)
	engine.register_collision(MyShot, UFO, coll_air2air_bonus)
	engine.register_collision(Invader, MyShot, coll_air2air)
	engine.register_collision(MyShot, Invader, coll_air2air)
	engine.register_collision(Ground, Invader, coll_gameover1)
	engine.register_collision(Invader, Ground, coll_gameover2)
	engine.register_collision(Me, Bomb, coll_loselife1)
	engine.register_collision(Bomb, Me, coll_loselife2)

	draw_score()

	engine.engine()
Beispiel #11
0
def play():
    global s
    s = S()

    engine.init_engine()
    engine.set_keyboard_handler(input_cb)
    engine.add_obj(Ground(MINX, GROUNDY, MAXX, MINY))

    s.me = Me(0, GROUNDY + 10)
    engine.add_obj(s.me)

    # the grid o' evil
    for i in range(INVADERROWS):
        for j in range(INVADERCOLS):
            enemy = Invader(XGRIDSTART + j * INVADERHSPACE, YGRIDSTART - i * INVADERVSPACE, INVADERSPEED, 0)
            s.invaders.append(enemy)
            engine.add_obj(enemy)
    engine.add_random_event(FIREPROB, fire_cb)
    engine.add_random_event(UFOPROB, ufo_cb)

    # not quite so random - do this at start of each time step
    # order is important - if no invaders left, gridmove won't be happy
    engine.add_random_event(1.0, winlose_cb)
    engine.add_random_event(1.0, gridmove_cb)

    engine.register_collision(Ground, Bomb, coll_ground1)
    engine.register_collision(Bomb, Ground, coll_ground2)
    engine.register_collision(UFO, MyShot, coll_air2air_bonus)
    engine.register_collision(MyShot, UFO, coll_air2air_bonus)
    engine.register_collision(Invader, MyShot, coll_air2air)
    engine.register_collision(MyShot, Invader, coll_air2air)
    engine.register_collision(Ground, Invader, coll_gameover1)
    engine.register_collision(Invader, Ground, coll_gameover2)
    engine.register_collision(Me, Bomb, coll_loselife1)
    engine.register_collision(Bomb, Me, coll_loselife2)

    draw_score()

    engine.engine()
Beispiel #12
0
def start_game():
    global score
    engine.init_engine()
    engine.set_keyboard_handler(keyboard_cb)

    # Adds Ground and Car and Mountains
    engine.add_obj(Mountain('Mountain2', 'ivory4', (-SPEED/4)))
    engine.add_obj(Mountain('Mountain1', 'bisque', (-SPEED/2)))
    engine.add_obj(Ground(MIN_X, GROUND_Y, MAX_X, MIN_Y))
    engine.add_obj(Car())

    # Adds Wheels
    engine.add_obj(Wheel(2, GROUND_Y, -3))
    engine.add_obj(Wheel(15, GROUND_Y, 3))
    engine.add_obj(Wheel(28, GROUND_Y, -3))

    # Random Events
    engine.add_random_event(0.006, hole_cb)
    engine.add_random_event(0.007, turtle_cb)
    engine.add_random_event(0.004, UFO_cb)

    # Collision Detection
    engine.register_collision(Car, Hole, hole_collision_cb)
    engine.register_collision(Hole, Car, hole_collision_cb2)

    engine.register_collision(Car, EnemyTurtle, turt_collision_cb)
    engine.register_collision(EnemyTurtle, Car, turt_collision_cb2)

    engine.register_collision(MissileRight, EnemyTurtle, miss_turt_collision_cb)
    engine.register_collision(EnemyTurtle, MissileRight, miss_turt_collision_cb2)

    engine.register_collision(MissleVertical, UFO, miss_ufo_collision_cb)
    engine.register_collision(UFO, MissleVertical, miss_ufo_collision_cb2)

    engine.register_collision(Car, UFO, car_ufo_collision_cb)
    engine.register_collision(UFO, Car, car_ufo_collision_cb2)

    engine.register_collision(Car, MissleVertical, car_miss_collision_cb)
    engine.register_collision(MissleVertical, Car, car_miss_collision_cb2)

    # Score and Stars drawn
    draw_score(False)
    draw_random_stars(50)

    engine.engine()
Beispiel #13
0
def init():
    global score
    score = 0
    engine.init_screen(W, H)
    engine.init_engine()
    turtle.bgcolor('black')
    engine.set_keyboard_handler(inputs)
    engine.add_random_event(0.01, rock)
    engine.add_random_event(0.01, hole)
    engine.add_random_event(0.1, newStar)
    engine.add_obj(buggy1)
    engine.add_obj(_ground(120, 320, -320, 240))
    draw_score()
    engine.add_obj(_starstuff(1, 1))
    engine.register_collision(_buggy, _rock, collbr)
    engine.register_collision(_rock, _buggy, collrb)
    engine.register_collision(_buggy, _hole, collbh)
    engine.register_collision(_hole, _buggy, collhb)
    engine.register_collision(_rocket, _rock, collrtr)
    engine.register_collision(_rock, _rocket, collrrt)
Beispiel #14
0
def circle_cb():
	obj = Circle(0, 0, 1, 1)
	engine.add_obj(obj)

def quit_cb(key):
	if key == 'q' or key == 'Q':
		engine.exit_engine()

# main routine

if __name__ == '__main__':
	#random.seed(86753)

	engine.init_screen(WIDTH, HEIGHT)
	engine.init_engine()
	engine.set_keyboard_handler(quit_cb)
	engine.add_random_event(0.005, circle_cb)
	engine.register_collision(Circle, Circle, coll_circle)
	engine.register_collision(Boom, Circle, coll_boom1)
	engine.register_collision(Circle, Boom, coll_boom2)
	for i in range(4):
		ypos = engine.MAXY - i * HEIGHT/3
		obj = DelayedBox(engine.MINX, ypos, i*250)
		engine.add_obj(obj)
	engine.add_obj(PulsingCircle(50, 50, 100))
	engine.add_obj(BigRect(engine.MINX + 25, 0,
			       engine.MAXX - 25, engine.MINY + 25))
	engine.add_obj(BigRect(0, 100, 25, 25))
	engine.add_obj(BigRect(-200, 150, -100, 125))
	engine.engine()
Beispiel #15
0
def demo_postinit_cb():
    engine.add_random_event(DEMOFIREPROB, demofire_cb)
    turtle.goto(0, GROUNDY - 75)
    turtle.color('red')
    turtle.write('DEMO', align='center', font=('Arial', 14, 'normal'))
Beispiel #16
0
    engine.add_obj(obj)


def quit_cb(key):
    if key == 'q' or key == 'Q':
        engine.exit_engine()


# main routine

if __name__ == '__main__':
    #random.seed(86753)

    engine.init_screen(WIDTH, HEIGHT)
    engine.init_engine()
    engine.set_keyboard_handler(quit_cb)
    engine.add_random_event(0.005, circle_cb)
    engine.register_collision(Circle, Circle, coll_circle)
    engine.register_collision(Boom, Circle, coll_boom1)
    engine.register_collision(Circle, Boom, coll_boom2)
    for i in range(4):
        ypos = engine.MAXY - i * HEIGHT / 3
        obj = DelayedBox(engine.MINX, ypos, i * 250)
        engine.add_obj(obj)
    engine.add_obj(PulsingCircle(50, 50, 100))
    engine.add_obj(
        BigRect(engine.MINX + 25, 0, engine.MAXX - 25, engine.MINY + 25))
    engine.add_obj(BigRect(0, 100, 25, 25))
    engine.add_obj(BigRect(-200, 150, -100, 125))
    engine.engine()
Beispiel #17
0
        self.pipecounter = 0


s = None


class Box(engine.GameObject):
    def __init__(self):
        super().__init__(0, 0, +1, 0, 'square', 'red')


def newpipe_cb():
    s.pipecounter -= 1
    if s.pipecounter <= 0:
        s.pipecounter = PIPEFREQ
        lheight = random.randint(PIPEMIN, PIPEUNITS - PIPEGAP - PIPEMIN)
        uheight = PIPEUNITS - lheight - PIPEGAP
        l = lowerpipe(ht2name(lheight), lheight * PIPEUNIT)
        u = upperpipe(ht2name(uheight), uheight * PIPEUNIT)
        engine.add_obj(l)
        engine.add_obj(u)


if __name__ == '__main__':
    s = S()
    engine.init_screen(WIDTH, HEIGHT)
    engine.init_engine()
    engine.add_random_event(1.0, newpipe_cb)

    engine.engine()
Beispiel #18
0
def demo_postinit_cb():
	engine.add_random_event(DEMOFIREPROB, demofire_cb)
	turtle.goto(0, GROUNDY-75)
	turtle.color('red')
	turtle.write('DEMO', align='center', font=('Arial', 14, 'normal'))
Beispiel #19
0
        c = Tween()
        c.name = name
        c.x, c.y = x1, y1
        c.heading = heading
        c.dx, c.dy = dx, dy
        c.dh = dh
        L.append(c)

    return L


if __name__ == '__main__':
    engine.init_screen(WIDTH, HEIGHT)
    engine.init_engine()
    turtle.bgcolor(BGCOLOR)
    engine.add_random_event(POPPROB, pop_cb)
    makepops()

    # parallax scrolling
    maketrees()
    # distant background
    engine.add_obj(Tree('smalltree', -50, LONGDISTY, +0.1, FGCOLOR))
    # medium-distance background
    engine.add_obj(Tree('bigtree', -WIDTH / 2, MEDDISTY, +0.5, FGCOLOR))

    # ground
    makeground()
    for i in range(NGROUNDLINES):
        engine.add_obj(Ground(GROUNDX, GROUNDY, FGCOLOR))

    # precompute tweening data from key frames and add figure object
Beispiel #20
0
		# place everything in a container
		c = Tween()
		c.name = name
		c.x, c.y = x1, y1
		c.heading = heading
		c.dx, c.dy = dx, dy
		c.dh = dh
		L.append(c)

	return L

if __name__ == '__main__':
	engine.init_screen(WIDTH, HEIGHT)
	engine.init_engine()
	turtle.bgcolor(BGCOLOR)
	engine.add_random_event(POPPROB, pop_cb)
	makepops()

	# parallax scrolling
	maketrees()
	# distant background
	engine.add_obj(Tree('smalltree', -50, LONGDISTY, +0.1, FGCOLOR))
	# medium-distance background
	engine.add_obj(Tree('bigtree', -WIDTH/2, MEDDISTY, +0.5, FGCOLOR))

	# ground
	makeground()
	for i in range(NGROUNDLINES):
		engine.add_obj(Ground(GROUNDX, GROUNDY, FGCOLOR))

	# precompute tweening data from key frames and add figure object