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()
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()
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()
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()
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()
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()
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()
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()
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)
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()
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'))
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()
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()
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'))
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
# 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