Ejemplo n.º 1
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()
Ejemplo n.º 2
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()
Ejemplo n.º 3
0
def intro():
	text_blink = 0.0
	angle = 0
	fps = camera.fps_controller(0, 2, -10)
	fps.update(clock.update())
	render.set_camera3d(fps.pos.x, fps.pos.y, fps.pos.z, fps.rot.x, fps.rot.y, fps.rot.z)
	while not input.key_press(gs.InputDevice.KeyEnter):
		render.clear(gs.Color.White)
		text_blink += clock.update()
		if text_blink > 1.0:
			text_blink = 0.0

		# Effet de background animé à la "Street Fighter" (hem)
		dessine_fond_qui_scroll()
		for z in range(-100, 100, 5):
			for x in range(-100, 100, 5):
				render.geometry3d(x, 0, z, cube)

		afficheTexte(500, 400, 'Quel est ton gourou ?', size=2)
		afficheTexte(500, 365, 'Choisis le sens de ta vie ~~~~~~~~~~~~~~')
		afficheTexte(500, 325, '...et appuie sur [enter]', text_blink)
		afficheTexte(815,20, 'Made by Trofis #CODE and Safae #DESIGN' , size=0.5)
		render.flip()
		angle += 0.01

	while input.key_press(gs.InputDevice.KeyEnter):
		render.clear()
		render.flip()
def play_simulation():
	while not input.key_press(gs.InputDevice.KeyEscape):
		clock.update()
		fps.update(clock.get_dt())
		render.set_camera3d(fps.pos.x, fps.pos.y, fps.pos.z, fps.rot.x, fps.rot.y, fps.rot.z)

		render.clear()

		for perso in array_perso:
			perso.draw()
			perso.update(physic_world)

		array_perso[0].kohonen_behaviour.draw(render.get_renderer().GetCurrentOutputWindow().GetSize().x, render.get_renderer().GetCurrentOutputWindow().GetSize().y)

		physic_world.draw()

		# render text
		if input.key_down(gs.InputDevice.KeyL):
			render.text2d(10, 120, 'Frag in Mem: %d' % KohonenBehaviour.memory.GetNbFragment())
			for action in range(perso_actions.nb_actions):
				render.text2d(10, 140 + 20*action, 'Frag for %s: %d, %d%%' % (perso_actions.get_current_action_name(action), KohonenBehaviour.memory.m_NbFragmentPerActionArray[action], KohonenBehaviour.memory.m_TabPercentFragmentPerAction[action]), 12, array_perso[0].kohonen_behaviour.color_array[action])

		render.text2d(10, 50, str(perso.selected_action)+" "+perso_actions.get_current_action_name(perso.selected_action))

		#draw it to the screen
		render.flip()
def render_text_screen(strings=None, duration=4.0, fade_duration=1.0, render_callback=None):

	if strings is None:
		return

	fonts_dict = {}
	fx_timer = 0.0
	while fx_timer < duration:
		dt_sec = clock.update()
		fx_timer += dt_sec

		if fx_timer < fade_duration:
			fade = RangeAdjust(fx_timer, 0.0, fade_duration, 0.0, 1.0)
		else:
			if fx_timer < duration - fade_duration:
				fade = 1.0
			else:
				fade = RangeAdjust(fx_timer, duration - fade_duration, duration, 1.0, 0.0)

		render.clear()
		fonts_dict = render_strings_array(strings, fade, fonts_dict)
		if fade > 0.2:
			if render_callback is not None:
				render_callback()
		render.flip()
def render_text_screen(strings=None,
                       duration=4.0,
                       fade_duration=1.0,
                       render_callback=None):

    if strings is None:
        return

    fonts_dict = {}
    fx_timer = 0.0
    while fx_timer < duration:
        dt_sec = clock.update()
        fx_timer += dt_sec

        if fx_timer < fade_duration:
            fade = RangeAdjust(fx_timer, 0.0, fade_duration, 0.0, 1.0)
        else:
            if fx_timer < duration - fade_duration:
                fade = 1.0
            else:
                fade = RangeAdjust(fx_timer, duration - fade_duration,
                                   duration, 1.0, 0.0)

        render.clear()
        fonts_dict = render_strings_array(strings, fade, fonts_dict)
        if fade > 0.2:
            if render_callback is not None:
                render_callback()
        render.flip()
Ejemplo n.º 7
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
Ejemplo n.º 8
0
	if start:
		render.text2d(3.0*size_pixel.x, size.y/7*6, "Finish the ritual to close\nthe demon's portal !", 6.5*size_pixel.x, gameboy_palette[2], font_path="Early GameBoy.ttf")
		render.text2d(31.25*size_pixel.x, size.y/7*1.5, "Easy", 8.5*size_pixel.x, gameboy_palette[2], font_path="Early GameBoy.ttf")
		render.text2d(31.25*size_pixel.x, size.y/7*1, "Hard", 8.5*size_pixel.x, gameboy_palette[2], font_path="Early GameBoy.ttf")
		render.text2d(31.25*size_pixel.x, 10, "Exit", 8.5*size_pixel.x, gameboy_palette[2], font_path="Early GameBoy.ttf")
		if not input.mouse_button_was_down() and input.mouse_button_down():
			easy_rect = gs.fRect(31.25*size_pixel.x, size.y/7*1.5, 31.25*size_pixel.x + 31.25*size_pixel.x, size.y/7*1.5 + 8.5*size_pixel.x)
			hard_rect = gs.fRect(31.25*size_pixel.x, size.y/7*1, 31.25*size_pixel.x + 31.25*size_pixel.x, size.y/7*1 + 8.5*size_pixel.x)
			exit_rect = gs.fRect(31.25*size_pixel.x, 10, 31.25*size_pixel.x + 31.25*size_pixel.x, 10 + 8.5*size_pixel.x)
			if easy_rect.Inside(input.get_mouse_pos()[0], input.get_mouse_pos()[1]):
				start = False
				reset = False
				reduce_speed = 15
				increase_speed = 15
			if hard_rect.Inside(input.get_mouse_pos()[0], input.get_mouse_pos()[1]):
				start = False
				reset = False
				reduce_speed = 10
				increase_speed = 25
			if exit_rect.Inside(input.get_mouse_pos()[0], input.get_mouse_pos()[1]):
				exit = True


	draw_cursor()

	# gs.DrawRenderSystemStats(render.get_render_system(), default_font, 10, 370)
	render.flip()
	# render.get_render_system().BeginFrame()
	# render.get_render_system().EndFrame()

render.uninit()
Ejemplo n.º 9
0
def render_mask_screen():
    mask_segment_list = wireframe_json_to_segment_list(
        "@assets/exxos_mask.json")

    scn = scene.new_scene()

    while not scn.IsReady():
        scene.update_scene(scn, 0.0)

    # Add an environment to the scene
    env = gs.Environment()
    env.SetBackgroundColor(gs.Color.Black)
    scn.AddComponent(env)

    # Add a camera
    render_camera = gs.Node()
    render_camera.AddComponent(gs.Transform())
    render_camera.AddComponent(gs.Camera())
    scn.AddNode(render_camera)
    scn.SetCurrentCamera(render_camera)
    render_camera.GetTransform().SetPosition(gs.Vector3(0, 0, -50))

    # Create a (parent) node to rotate the mask
    master_node = gs.Node()
    master_node.AddComponent(gs.Transform())
    scn.AddNode(master_node)

    # Init the starfield
    starfield.init_stars()
    starfield.set_camera_velocity(gs.Vector3(0, 0, -50))

    segment_nodes_list = []
    for seg in mask_segment_list:
        node_a, node_b = gs.Node(), gs.Node()
        tr_a, tr_b = gs.Transform(), gs.Transform()
        tr_a.SetPosition(gs.Vector3(seg[0][0], seg[0][1], seg[0][2]))
        tr_b.SetPosition(gs.Vector3(seg[1][0], seg[1][1], seg[1][2]))
        tr_a.SetParent(master_node)
        tr_b.SetParent(master_node)
        node_a.AddComponent(tr_a)
        node_b.AddComponent(tr_b)
        scn.AddNode(node_a)
        scn.AddNode(node_b)
        segment_nodes_list.append([node_a, node_b])

    seq_duration = 20.0
    fx_timer = 0.0
    while fx_timer < seq_duration:

        render.clear()
        dt_sec = clock.update()

        master_node.GetTransform().SetRotation(
            master_node.GetTransform().GetRotation() +
            gs.Vector3(1, 1, 1) * dt_sec * 0.25)
        scene.update_scene(scn, dt_sec)

        # render.commit_3d()
        # render.set_depth_write3d(False)

        starfield.update_stars(dt_sec)
        starfield.draw_stars(render)

        for seg in segment_nodes_list:
            pos_a = seg[0].GetTransform().GetWorld().GetTranslation()
            pos_b = seg[1].GetTransform().GetWorld().GetTranslation()
            render.line3d(pos_a.x,
                          pos_a.y,
                          pos_a.z,
                          pos_b.x,
                          pos_b.y,
                          pos_b.z,
                          start_color=gs.Color.Blue,
                          end_color=gs.Color.Blue)

        render.flip()

        fx_timer += dt_sec
    if record_motion:
        new_frame = []
        for current_node in node_list:
            new_motion = {
                'position':
                current_node.GetTransform().GetPosition() * scale_factor,
                'rotation': current_node.GetTransform().GetRotation()
            }
            new_frame.append(new_motion)

        stream_list.append(new_frame)

    render.text2d(5, 25, "@%.2fFPS" % (1 / dt_sec))
    render.text2d(5, 5,
                  "Move around with QSZD, left mouse button to look around")
    render.flip()

# Dump record

f = codecs.open(filename_out + '.h', 'w')

f.write('#include "genesis.h"\n\n')
f.write('#define SIMULATION_FRAME_LEN ' + str(len(stream_list)) + '\n')
f.write('#define SIMULATION_NODE_LEN ' + str(len(node_list)) + '\n\n')

f.write('const fix16 ' + 'physics_sim' + '[] =' + '\n')
f.write('{\n')

out_str = ''
frame_idx = 0
Ejemplo n.º 11
0
def final():
	render.clear()

	# initialize graphic and audio systems

	movie = gs.WebMMovie()
	movie.Open("@data/sylvain_durif.webm")

	video_format = movie.GetVideoData().GetFormat()

	# create the frame textures and frame object
	gpu = render.get_renderer()
	y_tex = gpu.NewTexture()
	gpu.CreateTexture(y_tex, video_format.width, video_format.height, gs.GpuTexture.R8, gs.GpuTexture.NoAA,
					  gs.GpuTexture.UsageDefault, False)
	u_tex = gpu.NewTexture()
	gpu.CreateTexture(u_tex, video_format.width // 2, video_format.height // 2, gs.GpuTexture.R8,
						  gs.GpuTexture.NoAA, gs.GpuTexture.UsageDefault, False)
	v_tex = gpu.NewTexture()
	gpu.CreateTexture(v_tex, video_format.width // 2, video_format.height // 2, gs.GpuTexture.R8,
						  gs.GpuTexture.NoAA, gs.GpuTexture.UsageDefault, False)

	frame = gs.VideoFrame()
	video_format.ClearFrame(frame)
	video_timestamp = gs.time(0)  # assume first frame time stamp is 0

	# load the YV12 to RGB shader and setup drawing states
	shader = gpu.LoadShader("@data/yv12.isl")

	gpu.EnableDepthTest(False)  # disable depth testing so that we don't even need to clear the z-buffer

	# start streaming the movie audio data
	channel = audio.get_mixer().StreamData(movie.GetAudioData())

	# play until movie ends
	while not movie.IsEOF():
		render.clear()
		# fit the while output window
		screen_size = gpu.GetCurrentOutputWindow().GetSize()
		gpu.SetViewport(gs.fRect(0, 0, screen_size.x, screen_size.y))
		gpu.Set2DMatrices()  # update the 2d matrix

		# fetch the next video frame once audio gets past video
		audio_timestamp = audio.get_mixer().GetChannelPosition(channel)  # audio timestamp as reported by the mixer

		if audio_timestamp >= video_timestamp:
			movie.GetVideoData().GetFrame(frame)
			video_timestamp = frame.GetTimestamp()
			gpu.BlitTexture(y_tex, frame.GetPlaneData(gs.VideoFrame.Y), video_format.width, video_format.height)
			gpu.BlitTexture(u_tex, frame.GetPlaneData(gs.VideoFrame.U), video_format.width // 2,
							video_format.height // 2)
			gpu.BlitTexture(v_tex, frame.GetPlaneData(gs.VideoFrame.V), video_format.width // 2,
							video_format.height // 2)

			# draw the current video frame to screen
			vtxs = [gs.Vector3(0, 0, 0.5), gs.Vector3(0, screen_size.y, 0.5),
					gs.Vector3(screen_size.x, screen_size.y, 0.5), gs.Vector3(0, 0, 0.5),
					gs.Vector3(screen_size.x, screen_size.y, 0.5), gs.Vector3(screen_size.x, 0, 0.5)]
			uvs = [gs.Vector2(0, 1), gs.Vector2(0, 0), gs.Vector2(1, 0), gs.Vector2(0, 1), gs.Vector2(1, 0),
				   gs.Vector2(1, 1)]
		render_system = render.get_render_system()
		gpu.SetShader(shader)
		gs.SetShaderEngineValues(render_system)
		gpu.SetShaderTexture("y_tex", y_tex)
		gpu.SetShaderTexture("u_tex", u_tex)
		gpu.SetShaderTexture("v_tex", v_tex)
		render_system.DrawTriangleUV(2, vtxs, uvs)
		render.flip()
Ejemplo n.º 12
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