Esempio n. 1
0
def demo():
    global exitdemo
    exitdemo = False

    while not exitdemo:
        engine.init_engine()
        engine.set_keyboard_handler(demo_keypress_cb)
        play(demo_postinit_cb)
Esempio n. 2
0
def demo():
	global exitdemo
	exitdemo = False

	while not exitdemo:
		engine.init_engine()
		engine.set_keyboard_handler(demo_keypress_cb)
		play(demo_postinit_cb)
Esempio n. 3
0
def play():
    global s
    s = S()

    engine.init_engine()
    engine.set_keyboard_handler(input_cb)
    engine.set_mouse_handler(fire_cb)
    s.me = Me()
    engine.add_obj(s.me)

    s.playing = True
    engine.engine()
Esempio n. 4
0
    def load_level_selection_menu():
        print("Loading the level selection menu...")
        pos_arrow = - game.Game.LENGTH // 5, 3 * Menu.LEVEL_LINE_HEIGHT + Menu.FONT_SIZE
        rect_p1 = game.Game.LENGTH // 2, game.Game.LENGTH // 2
        rect_p2 = - game.Game.LENGTH // 2, - game.Game.LENGTH // 2

        engine.init_engine()
        engine.set_keyboard_handler(Menu.keyboard_lvl)
        Menu.cursor_position = Menu.cursor_position_on_screen = 1
        assert Menu.select_arrow is None, "Select arrow already initialized"
        Menu.lvl_rect = shapes.Rectangle(rect_p1, rect_p2, color_edge="white")
        Menu.select_arrow = engine.GameObject(*pos_arrow, 0, 0, "select_arrow", "black")
        engine.add_obj(Menu.select_arrow)
        Menu.display_level()
Esempio n. 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()
Esempio n. 6
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()
Esempio n. 7
0
    def load_skin_selection_menu():
        print("Loading the skin selection menu...")
        x_arrow, y_arrow = game.Game.LENGTH / 3.5, - game.Game.LENGTH / 6
        arrow_height, arrow_width = 34.6, 30
        rect_txt_p1 = - (y_arrow + arrow_height / 2), - x_arrow + arrow_width / 2
        rect_txt_p2 = - (y_arrow - arrow_height / 2), x_arrow - arrow_width / 2
        rect_window_p1 = rect_txt_p1[0] - 20, rect_txt_p1[1]  # 20 : shift between the two rectangles
        rect_window_p2 = rect_txt_p1[0] - 20 - Menu.SKIN_WINDOW_HEIGHT, rect_txt_p2[1]

        engine.init_engine()
        engine.set_keyboard_handler(Menu.keyboard_skin)
        _ = engine.GameObject(x_arrow, y_arrow, 0, 0, "arrow_right_skin", "gray", True)
        _ = engine.GameObject(- x_arrow, y_arrow, 0, 0, "arrow_left_skin", "gray", True)
        _ = shapes.Rectangle(rect_window_p1, rect_window_p2)
        Menu.skin_rect = shapes.Rectangle(rect_txt_p1, rect_txt_p2)
        Menu.display_skin()
Esempio n. 8
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()
Esempio n. 9
0
    def keyboard_lvl(key):
        """keyboard manager for the level selection menu"""
        total_lvl_number = len(listdir("Files/lvls/"))
        y0 = 4 * Menu.LEVEL_LINE_HEIGHT + Menu.FONT_SIZE

        if key == "Up":
            if Menu.cursor_position_on_screen > 0:
                Menu.cursor_position_on_screen -= 1
            elif Menu.cursor_position == 0:  # and Menu.cursor_position_on_screen == 0
                Menu.cursor_position_on_screen = Menu.MAX_NB_LVL_PER_PAGE - 1
            # in other cases, the arrow remains on the top
            Menu.cursor_position = (Menu.cursor_position - 1) % (total_lvl_number + 1)  # + 1 for the return button
            Menu.select_arrow.y = y0 - Menu.LEVEL_LINE_HEIGHT * Menu.cursor_position_on_screen
            Menu.display_level()

        if key == "Down":
            if Menu.cursor_position_on_screen < Menu.MAX_NB_LVL_PER_PAGE - 1:
                Menu.cursor_position_on_screen += 1
            elif Menu.cursor_position == total_lvl_number:  # and Menu.cursor_position_on_screen == MAX_NB_LVL_PER_PAGE - 1
                Menu.cursor_position_on_screen = 0
            # in other cases, the arrow remains on the bottom
            Menu.cursor_position = (Menu.cursor_position + 1) % (total_lvl_number + 1)  # + 1 for the return button
            Menu.select_arrow.y = y0 - Menu.LEVEL_LINE_HEIGHT * Menu.cursor_position_on_screen
            Menu.display_level()

        if key == "Return":
            engine.del_obj(Menu.select_arrow)
            engine.del_obj(Menu.lvl_rect)
            Menu.select_arrow = Menu.lvl_rect = None
            if Menu.cursor_position == 0:
                Menu.load_main_menu()
            else:
                lvl = "lvl" + str(Menu.cursor_position)

                engine.init_engine()
                game.Game.init_all(lvl)

                engine.add_obj(game.Game.ground)
                engine.add_obj(game.Game.rocket)

                game.cheat()
                engine.set_keyboard_handler(game.keyboard_cb)
                game.load()
Esempio n. 10
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)
Esempio n. 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()
Esempio n. 12
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()
Esempio n. 13
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()
Esempio n. 14
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()
Esempio n. 15
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()
Esempio n. 16
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()
Esempio n. 17
0
    def load_main_menu():
        print("Loading the main menu...")
        pos_arrow = - game.Game.LENGTH / 5, game.Game.LENGTH / 9
        pos_title = 0, game.Game.LENGTH / 3
        x0, y0 = pos_arrow[0] + 40, pos_arrow[1] - Menu.LINE_HEIGHT / 2 + 5  # + 5 to have arrow and text aligned
        font_size_title = 55

        engine.set_keyboard_handler(Menu.keyboard_main)
        assert Menu.select_arrow is None, "Select arrow already initialized"
        Menu.select_arrow = engine.GameObject(*pos_arrow, 0, 0, "select_arrow", "black")
        engine.add_obj(Menu.select_arrow)
        Menu.cursor_position = 0

        turtle.clear()
        turtle.setpos(*pos_title)  # options to select
        turtle.write("Name of the game", align="center", font=("Arial", font_size_title, "normal"))
        str_list = ["Choose a level", "Tutorial", "Choose a skin", "Quit game"]
        for i in range(len(str_list)):
            turtle.setpos(x0, y0 - i * Menu.LINE_HEIGHT)
            turtle.write(str_list[i], font=("Arial", Menu.FONT_SIZE, "normal"))

        if not Menu.engine_launched:
            Menu.engine_launched = True
            engine.engine()
Esempio n. 18
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()
Esempio n. 19
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()
Esempio n. 20
0
def game():
	engine.init_engine()
	engine.set_mouse_handler(fire_cb)
	engine.set_keyboard_handler(quit_cb)
	play()
Esempio n. 21
0
			y = HEIGHT//2 - row * B
			tile = Tile(x, y)
			engine.add_obj(tile)

def recalcdeltas():
	global deltax, deltay
	deltay = SPEED * math.sin(math.radians(heading))
	deltax = SPEED * math.cos(math.radians(heading))

def input_cb(key):
	global heading
	if key == 'q' or key == 'Q':
		engine.exit_engine()
	elif key == 'Left':
		heading = (heading + HEADINGSTEP) % 360
	elif key == 'Right':
		heading = (heading - HEADINGSTEP) % 360

	recalcdeltas()

if __name__ == '__main__':
	engine.init_screen(WIDTH, HEIGHT)
	engine.init_engine(delay=0)	# no delay needed with so many objects!
	engine.set_keyboard_handler(input_cb)
	recalcdeltas()
	makeshipshape()
	maketileshape()
	maketilegrid()
	engine.add_obj(Me())		# needs to be after tile grid created
	engine.engine()
Esempio n. 22
0
		engine.del_obj(target)
		ntargets -= 1
		if ntargets == 0:
			win(timer.gettime())

def draw_score(time):
	turtle.goto(0, HEIGHT//2 - 25)
	turtle.dot(50, ROOFCOLOR)
	turtle.color('black')
	turtle.write(time, align='center', font=('Arial', 14, 'normal'))

def win(time):
	mesg = 'Time to complete: %d' % time
	turtle.goto(0, -30)
	turtle.color('black')
	turtle.write(mesg, True, align='center', font=('Arial', 24, 'italic'))

if __name__ == '__main__':
	engine.init_screen(WIDTH, HEIGHT)
	engine.init_engine()
	engine.set_keyboard_handler(input_cb)
	makescenery()
	makeguns()
	me = Gun()
	engine.add_obj(me)
	timer = Timer()
	engine.add_obj(timer)
	engine.register_collision(Shot, Target, coll1)
	engine.register_collision(Target, Shot, coll2)
	engine.engine()
Esempio n. 23
0
# moving boxes, added in response to space bar being pressed

import engine

WIDTH = 640
HEIGHT = 480

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

def keyboard_cb(key):
        if key == 'space':
                box = Box()
                engine.add_obj(box)
        if key == 'Escape' :
                engine.exit_engine()

                
if __name__ == '__main__':
	engine.init_screen(WIDTH, HEIGHT)
	engine.init_engine()
	engine.set_keyboard_handler(keyboard_cb)
	engine.engine()
Esempio n. 24
0
def game():
    engine.init_engine()
    engine.set_keyboard_handler(input_cb)
    play()
Esempio n. 25
0
def game():
    engine.init_engine()
    engine.set_mouse_handler(fire_cb)
    engine.set_keyboard_handler(quit_cb)
    play()
Esempio n. 26
0
            closest_dist = abs(i[0] - zero_pos)

    ret = [x if x[0] > zero_pos + 100 or x[0] < zero_pos
           else (x[0], closest_point[1]) for x in mnt_sort]
    # make the flat spot just like a bulldozer would do!!

    ret.append((width, 0))
    ret.append((0, 0))

    return tuple(ret)


if __name__ == '__main__':
    engine.init_screen(WIDTH, HEIGHT)
    engine.init_engine()
    engine.set_keyboard_handler(keyboard_cb)

    # build the level
    lvl = build_random_map(wlength)

    # we're on the moon...
    turtle.bgcolor("#000044")

    # register the shapes
    reg_ground()
    reg_ship()
    reg_sun()
    reg_enemy()
    reg_bullet()
    reg_fuel_bar(100)
    reg_speed_bar(0)
Esempio n. 27
0
    def keyboard_callback(key):
        if key == 'space':
            lunar_lander.toggleMotor()
        if key == 'h':
            lunar_lander.turnLeft()
        if key == 'l':
            lunar_lander.turnRight()

    return keyboard_callback


if __name__ == '__main__':
    engine.init_screen(WIDTH, HEIGHT)
    engine.init_engine()

    addShapesToEngine()

    screen = Screen(WIDTH, HEIGHT)
    engine.add_obj(screen)

    lander = LunarLander()
    engine.add_obj(lander)

    engine.add_obj(Sun())
    engine.add_obj(Ground())

    registerCollisionCallbacks()

    engine.set_keyboard_handler(getLunarLanderKeyboardCallback(lander))
    engine.engine()