Example #1
0
def render_landscape_screen():
    seq_duration = 40.0
    fx_timer = 0.0
    y_offset = 50
    logo_freq = 6
    while fx_timer < seq_duration:
        dt_sec = clock.update()
        fx_timer += dt_sec
        render.clear()
        render.set_blend_mode2d(render.BlendAlpha)

        render.image2d(
            (demo_screen_size[0] - 320 * zoom_size()) * 0.5,
            (demo_screen_size[1] - (34 + y_offset) * zoom_size()) * 0.5,
            zoom_size(), "@assets/landscape_mountains.png")
        render.image2d(
            (demo_screen_size[0] - 100 * zoom_size()) * 0.5,
            (demo_screen_size[1] - (80 + y_offset) * zoom_size()) * 0.5,
            zoom_size(), "@assets/landscape_stones.png")

        x, y = math.cos(
            fx_timer / seq_duration * math.pi * 2 * logo_freq) * 16, math.sin(
                fx_timer / seq_duration * math.pi * 5 * logo_freq) * 16
        render.image2d(
            (demo_screen_size[0] - (187 + x) * zoom_size()) * 0.5,
            (demo_screen_size[1] - (106 - 80 + y) * zoom_size()) * 0.5,
            zoom_size(), "@assets/logo_exxos.png")

        render.set_blend_mode2d(render.BlendOpaque)
        render.flip()
Example #2
0
def render_space_screen():
    seq_duration = 20.0
    fx_timer = 0.0
    while fx_timer < seq_duration:
        dt_sec = clock.update()
        fx_timer += dt_sec
        render.clear()
        render.set_blend_mode2d(render.BlendAlpha)

        x_star = RangeAdjust(fx_timer, 0.0, seq_duration, demo_screen_size[0],
                             -53 * zoom_size())
        x_moon = RangeAdjust(fx_timer, seq_duration * 0.475, seq_duration,
                             demo_screen_size[0], -60 * zoom_size())
        x_planet = RangeAdjust(fx_timer, seq_duration * 0.65, seq_duration,
                               demo_screen_size[0], -95 * zoom_size())

        render.image2d(x_star, (demo_screen_size[1] - 53 * zoom_size()) * 0.5,
                       zoom_size(), "@assets/space_star.png")

        render.image2d(x_moon, (demo_screen_size[1] - 60 * zoom_size()) * 0.5,
                       zoom_size(), "@assets/space_moon.png")

        render.image2d(x_planet, 0, zoom_size(), "@assets/space_planet.png")

        render.set_blend_mode2d(render.BlendOpaque)
        render.flip()
Example #3
0
def generation(gourou, gourou_index_list):
	print(gourou_index_list)
	index_gourou = (gourou_index_list[0] + gourou_index_list[1] * 3) + 1
	while not input.key_press(gs.InputDevice.KeyEnter):
		render.clear(gs.Color.White)
		# dessine_fond_qui_scroll()

		afficheTexte(800, 500, 'Voyons désormais quel est ton Gourou ....')
		# render.set_blend_mode2d(1)
		# render.image2d((1920-400)/2,(1024-350)/2,1.0,'@data/gourou' + str(index_gourou) + '.png')
		# render.set_blend_mode2d(0)
		render.flip()
	render.flip()
	# print(render.get_font(lesGourou [index_gourou]))
	gourou_scale = 0.25
	gourou_acc = 0.995
	y_offset = 0.0
	while not input.key_press(gs.InputDevice.KeyEnter):
		render.clear(gs.Color.White)
		dessine_fond_qui_scroll()
		afficheTexte(700, 850, lesGourou[index_gourou-1]  )
		# afficheTexte(1050, 400, 'Au coeur ' + str(getTxt(phases, 1, indexImg[0], indexImg[1])))
		# afficheTexte(1100, 300, 'Qui regarda '+str(getTxt(phases,2,indexImg[1], indexImg[2] )))
		render.set_blend_mode2d(1)
		gourou_scale_tmp = gourou_scale * 1.5
		render.image2d((1920 - (400 * gourou_scale_tmp)) / 2,
					   (1024 - (350 * gourou_scale_tmp)) / 2 + y_offset * (1.0 - gourou_scale * gourou_scale),
					   gourou_scale_tmp, '@data/gourou' + str(index_gourou) + '.png')
		render.set_blend_mode2d(0)
		render.flip()

		gourou_scale = (gourou_scale * gourou_acc + (1.0 - gourou_acc))
		y_offset = y_offset * 0.95 + 0.5 * random.randint(-15, 15)
	render.flip()

	return index_gourou - 1
Example #4
0
def selection():
	global indexImg
	Gourou = []
	gourou_index_list = []
	indexDecor = 0
	indexEntrer = -1
	amplitude = 1
	indexImg = {}
	for phase in range(len(phases)):

		joue_sfx_phase()
		entrer = False
		angle = 0

		while not entrer:
			render.clear(gs.Color.White)
			# dessine_fond_qui_scroll()

			if input.key_press(gs.InputDevice.KeyLeft) and indexDecor > 0:
				indexDecor = (indexDecor - 1) % getImgParPha(phases)
				# joue_sfx_selection()
				amplitude = 1

			if input.key_press(gs.InputDevice.KeyRight) and indexDecor < getImgParPha(phases) - 1:
				indexDecor = (indexDecor + 1) % getImgParPha(phases)
				# joue_sfx_selection()
				amplitude = 1

			if indexDecor >= 0:

				amplitude *= 0.95

			yOffSet = [0, 0, 0]

			# print(indexDecor)
			render.set_blend_mode2d(1)
			afficheImageNot(430, 165 + 25, 1, '@data/ornement_gauche.png')
			afficheImageNot(1090, 165 + 25, 1, '@data/ornement_droite.png')
			render.set_blend_mode2d(0)
			if phase == 0:
				yOffSet[indexDecor] = random.randint(-5, 5)
				afficheImage((SCREEN_W - 1050) / 2, 285 + random.randint(-25, 25) * amplitude, phase, 1.0, indexDecor,
							 0)
				afficheTexte(800, 220 + 25, 'OÙ VEUX TU TE RETIRER ?', size=0.75)
				render.set_blend_mode2d(1)
				afficheImageNot(600, 50, 1, '@data/choix_paysage.png')
				render.set_blend_mode2d(0)
				if indexDecor == 0:
					afficheTexte(620, 25 + yOffSet[0], getTxt(phases, phase, 0, 0))
				if indexDecor == 1:
					afficheTexte(890, 25 + yOffSet[1], getTxt(phases, phase, 0, 1))
				if indexDecor == 2:
					afficheTexte(1165, 25 + yOffSet[2], getTxt(phases, phase, 0, 2))

			elif phase == 1:
				yOffSet[indexDecor] = random.randint(-5, 5)
				afficheImage((SCREEN_W - 1050) / 2, 285 + random.randint(-25, 25) * amplitude, phase, 1.0, indexDecor,
							 indexImg[phase - 1])
				afficheTexte(740, 220 + 25, 'CHOISIS UNE AMBIANCE MYSTIQUE', size=0.75)
				render.set_blend_mode2d(1)
				afficheImageNot(600, 50, 1, '@data/choix_ambiance.png')
				render.set_blend_mode2d(0)

				# print(indexImg)

				if indexDecor == 0:
					afficheTexte(600, 25 + yOffSet[0], getTxt(phases, phase, indexImg[phase - 1], indexDecor),
								 size=0.75)

				if indexDecor == 1:
					afficheTexte(840, 25 + yOffSet[1], getTxt(phases, phase, indexImg[phase - 1], indexDecor),
								 size=0.75)

				if indexDecor == 2:
					afficheTexte(1050, 25 + yOffSet[2], getTxt(phases, phase, indexImg[phase - 1], indexDecor),
								 size=0.75)

			else:
				yOffSet[indexDecor] = random.randint(-5, 5)
				afficheImage((SCREEN_W - 1050) / 2, 285 + random.randint(-25, 25) * amplitude, phase, 1.0, indexDecor,
							 indexImg[phase - 1])
				afficheTexte(700, 220 + 25, 'CHOISIS UN TRUC A OBSERVER', size=0.85)
				render.set_blend_mode2d(1)
				afficheImageNot(600, 50, 1, '@data/choix_paysage.png')
				render.set_blend_mode2d(0)

				if indexDecor == 0:
					afficheTexte(670, 25 + yOffSet[0], getTxt(phases, phase, indexImg[phase - 1], indexDecor))

				if indexDecor == 1:
					afficheTexte(900, 25 + yOffSet[1], getTxt(phases, phase, indexImg[phase - 1], indexDecor))

				if indexDecor == 2:
					afficheTexte(1180, 25 + yOffSet[2], getTxt(phases, phase, indexImg[phase - 1], indexDecor))


			if input.key_press(gs.InputDevice.KeyEnter):

				gourou_index_list.append(indexDecor)
				entrer = True
				indexEntrer = indexDecor
				if phase == 0:
					Gourou.append(getTxt(phases, phase, 0, indexDecor))
				else:
					Gourou.append(getTxt(phases, phase, indexImg[phase - 1], indexDecor))

			if entrer:
				indexImg[phase] = indexEntrer

			# if phase > 0:
			#     for index in range(len(indexImg)):
			#         if index != 2:
			#             render.set_blend_mode2d(1)
			#             afficheImage(100+(600*(index)), 400, index , 0.6, indexImg[index])
			#             render.set_blend_mode2d(0)
			#         else:
			#             render.set_blend_mode2d(1)
			#             afficheImage(450, 100, index , 0.6, indexImg[index])
			#             render.set_blend_mode2d(0)

			render.flip()
		render.flip()

		# prochaine phase, on joue un son de "selection"
		joue_sfx_selection()

	return Gourou, gourou_index_list
Example #5
0
def gameMainLoop(mouse_device):
    # Update the ball motion
    ball.update(dt)

    # Update the player motion
    player.setMouse(
        mouse_device.GetValue(gs.InputDevice.InputAxisX) / SCR_DISP_WIDTH,
        mouse_device.GetValue(gs.InputDevice.InputAxisY) / SCR_DISP_HEIGHT)
    player.update(dt)

    # Update the AI
    ai.updateGameData(ball.pos_x, ball.pos_z, board.board_width,
                      board.board_length)
    ai.update(dt)

    # Collisions
    if ball.velocity_z > 0.0:
        if (not ballIsBehindRacket(ball, player)) and (BallWasWithinXReach(
                ball, player) or BallIsWithinXReach(ball, player)):
            ball.setPosition(
                ball.pos_x, player.pos_z - ball.velocity_z * dt +
                min(0.0, player.velocity_z) * dt)
            player.setPosition(player.pos_x, ball.pos_z + player.length)
            ball.bounceZ()

    # Compute 3D/2D projections
    ball_2d_x, ball_2d_y, ball_2d_scale = project3DTo2D(
        ball.pos_x, ball.pos_z, board.board_width, board.board_length)
    ball_2d_x *= SCR_SCALE_FACTOR
    ball_2d_y = SCR_DISP_HEIGHT - (ball_2d_y * SCR_SCALE_FACTOR)

    player_2d_x, player_2d_y, player_2d_scale = project3DTo2D(
        player.pos_x, player.pos_z, board.board_width, board.board_length)
    player_2d_x *= SCR_SCALE_FACTOR
    player_2d_y = SCR_DISP_HEIGHT - (player_2d_y * SCR_SCALE_FACTOR)

    ai_2d_x, ai_2d_y, ai_2d_scale = project3DTo2D(ai.pos_x, ai.pos_z,
                                                  board.board_width,
                                                  board.board_length)
    ai_2d_x *= SCR_SCALE_FACTOR
    ai_2d_y = SCR_DISP_HEIGHT - (ai_2d_y * SCR_SCALE_FACTOR)

    render.clear()
    render.set_blend_mode2d(render.BlendAlpha)
    # Opponent
    render.sprite2d(SCR_MARGIN_X + (320 * 0.5) * SCR_SCALE_FACTOR,
                    (SCR_PHYSIC_HEIGHT - 96 * 0.5) * SCR_SCALE_FACTOR,
                    106 * SCR_SCALE_FACTOR, "@assets/robot5.png")

    # Game board
    render.image2d(SCR_MARGIN_X, 0, SCR_SCALE_FACTOR, "@assets/game_board.png")

    # Score panel
    render.image2d(SCR_MARGIN_X, SCR_DISP_HEIGHT - (32 * SCR_SCALE_FACTOR),
                   SCR_SCALE_FACTOR, "@assets/game_score_panel.png")

    # Render moving items according to their Z position
    renderAI(ai_2d_x, ai_2d_y, ai_2d_scale)

    if ball.pos_z - ball.radius < player.pos_z + player.length:
        renderBall(ball_2d_x, ball_2d_y, ball_2d_scale)
        renderPlayer(player_2d_x, player_2d_y, player_2d_scale)
    else:
        renderPlayer(player_2d_x, player_2d_y, player_2d_scale)
        renderBall(ball_2d_x, ball_2d_y, ball_2d_scale)

    render.set_blend_mode2d(render.BlendOpaque)
	app_path = os.path.dirname(sys.executable)
else:
	app_path = os.path.dirname(os.path.realpath(__file__))

# gs.plus.create_workers()
gs.LoadPlugins(gs.get_default_plugins_path())
render.init(1280, 720, os.path.normcase(os.path.realpath(os.path.join(app_path, "pkg.core"))))
gs.MountFileDriver(gs.StdFileDriver("assets"), '@assets')

audio.init()

# provide access to the assets folder
data_path = os.path.normcase(os.path.realpath(app_path))
gs.GetFilesystem().Mount(gs.StdFileDriver(data_path))

render.set_blend_mode2d(render.BlendAlpha)

globals.current_scene.setup()

def fade_between_scene():
	global state, fade_percent
	if globals.prev_scene_fade != globals.current_scene:
		globals.current_scene.exit()
		# transition to the new scene
		state = state_fade_in

	# launch the fade in
	if state == state_fade_in:
		fade_percent += fade_speed * globals.dt_sec
		if fade_percent > 1:
			fade_percent = 1