def draw(self):
		width = render.get_renderer().GetCurrentOutputWindow().GetSize().x
		height = render.get_renderer().GetCurrentOutputWindow().GetSize().y
		center = gs.Vector2(width/2, height/2)

		for pos_sphere in self.sphere_array:
			render.geometry3d(pos_sphere.pos.x, 0, pos_sphere.pos.y, self.wall_1m)
			circle3d(pos_sphere.pos.x, pos_sphere.pos.y, pos_sphere.r)
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()
예제 #3
0
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
			state = state_fade_out
			loop = asyncio.get_event_loop()
			loop.run_until_complete(globals.current_scene.setup())
			loop.close()
			globals.prev_scene_fade = globals.current_scene

	#launch fade out with the new scene
	if state == state_fade_out:
		fade_percent -= fade_speed * globals.dt_sec
		if fade_percent < 0:
			fade_percent = 0
			state = state_ready

	if fade_percent > 0:
		color = gs.Color(0, 0, 0, fade_percent)
		size = render.get_renderer().GetCurrentOutputWindow().GetSize()
		render.triangle2d(0, 0, size.x, size.y, size.x, 0, color, color, color)
		render.triangle2d(0, 0, 0, size.y, size.x, size.y, color, color, color)
예제 #4
0
    def init(cls):
        cls.rendu = render.get_renderer()
        cls.clavier = input.get_keyboard()

        cls.systeme = render.get_render_system()

        cls.rendu2d = gs.SimpleGraphicEngine()
        cls.rendu2d.SetDepthWrite(False)
        cls.rendu2d.SetDepthTest(True)
        cls.rendu2d.SetBlendMode(gs.BlendAlpha)
        cls.rendu_scene=None    #Initialisé à chaque activation de scène

        cls.texture_ombre_sol=Demo.rendu.LoadTexture("textures/ombre_sol.png")
        cls.texture_bruit_01=Demo.rendu.LoadTexture("textures/bruit_01.png")

        if cls.texture_ombre_sol is None or cls.texture_bruit_01 is None:
            cls.message_erreur="Impossible de charger les textures de base"
            cls.drapeau_erreur=True

        #Shaders par défaut:
        cls.shader_billboards=cls.systeme.LoadSurfaceShader("shaders/sprite_alpha.isl",False)
        cls.shader_constant_map=cls.systeme.LoadSurfaceShader("shaders/constant_map.isl",False)
        cls.shader_constant=cls.systeme.LoadSurfaceShader("shaders/diffuse_constante.isl",False)
        cls.shader_ocean_01=cls.systeme.LoadSurfaceShader("shaders/ocean.isl",False)
        cls.shader_ocean_02=cls.systeme.LoadSurfaceShader("shaders/ocean_proche.isl",False)
        cls.shader_transparent=cls.systeme.LoadSurfaceShader("shaders/diffuse_alpha.isl",False)

        #Init le post-rendu:
        cls.init_post_rendu()

        #Init le gestionnaire sonore:
        cls.audio = gs.ALMixer()
        cls.audio.Open()
	def draw(self):
		width = render.get_renderer().GetCurrentOutputWindow().GetSize().x
		height = render.get_renderer().GetCurrentOutputWindow().GetSize().y

		self.inputs.draw()

		angle_dir = acos(self.dir.Normalized().Dot(gs.Vector2(1, 0))) * (-1 if self.dir.y > 0 else 1)
		render.geometry3d(self.pos.x, 0, self.pos.y, self.geo, 0, angle_dir + 1.57, 0)
		circle3d(self.pos.x, self.pos.y, 0.5)

		half_width, half_height = width/2, height/2

		if self.pos.x > half_width:
			self.pos.x = half_width
		elif self.pos.x < -half_width:
			self.pos.x = -half_width
		elif self.pos.y > half_height:
			self.pos.y = half_height
		elif self.pos.y < -half_height:
			self.pos.y = -half_height
def render_strings_array(strings = None, fade = 1.0, fonts_dict = {}):
	sys = render.get_render_system()
	render.get_renderer().EnableBlending(True)
	render.get_renderer().EnableDepthTest(False)

	for line in strings:
		font_key = line[4] + "_" + str(line[5])
		if not font_key in fonts_dict:
			fonts_dict[font_key] = gs.RasterFont("@assets/" + line[4] + ".ttf", int(line[5] * zoom_size() / 3), 512)

		rect = fonts_dict[font_key].GetTextRect(sys, line[0])
		x = (demo_screen_size[0] - rect.GetWidth()) * 0.5
		y = (amiga_screen_size[1] - line[1]) * zoom_size()
		fonts_dict[font_key].Write(sys, line[0], gs.Vector3(x, y, 0.5), gs.Color.White * fade)

	sys.DrawRasterFontBatch()

	render.get_renderer().EnableBlending(False)

	# underline ?
	for line in strings:
		if line[3] == 1:
			font_key = line[4] + "_" + str(line[5])
			rect = fonts_dict[font_key].GetTextRect(sys, line[0])
			x = (demo_screen_size[0] - rect.GetWidth()) * 0.5
			y = (amiga_screen_size[1] - line[1]) * zoom_size() - (line[5] * 0.2 * zoom_size() / 3)
			render.line2d(x, y, x + rect.GetWidth(), y, gs.Color.White * fade * fade, gs.Color.White * fade * fade)

	return fonts_dict
def render_strings_array(strings=None, fade=1.0, fonts_dict={}):
    sys = render.get_render_system()
    render.get_renderer().EnableBlending(True)
    render.get_renderer().EnableDepthTest(False)

    for line in strings:
        font_key = line[4] + "_" + str(line[5])
        if not font_key in fonts_dict:
            fonts_dict[font_key] = gs.RasterFont(
                "@assets/" + line[4] + ".ttf", int(line[5] * zoom_size() / 3),
                512)

        rect = fonts_dict[font_key].GetTextRect(sys, line[0])
        x = (demo_screen_size[0] - rect.GetWidth()) * 0.5
        y = (amiga_screen_size[1] - line[1]) * zoom_size()
        fonts_dict[font_key].Write(sys, line[0], gs.Vector3(x, y, 0.5),
                                   gs.Color.White * fade)

    sys.DrawRasterFontBatch()

    render.get_renderer().EnableBlending(False)

    # underline ?
    for line in strings:
        if line[3] == 1:
            font_key = line[4] + "_" + str(line[5])
            rect = fonts_dict[font_key].GetTextRect(sys, line[0])
            x = (demo_screen_size[0] - rect.GetWidth()) * 0.5
            y = (amiga_screen_size[1] - line[1]) * zoom_size() - (
                line[5] * 0.2 * zoom_size() / 3)
            render.line2d(x, y, x + rect.GetWidth(), y,
                          gs.Color.White * fade * fade,
                          gs.Color.White * fade * fade)

    return fonts_dict
예제 #8
0
def draw():
	global screen_clock

	def fade_sin(fade):
		return (math.cos(fade * 3.0) + 1.0) * 0.5

	size = render.get_renderer().GetCurrentOutputWindow().GetSize()
	x = size.x * 0.5 - 100.0
	y = size.y * 0.5 - 210.0
	font_size = 80
	screen_clock += dt_sec

	render.text2d(x - size.x * 0.001, y - size.y * 0.001, "Press Enter", font_size, gs.Color(0,0,0, fade_sin(screen_clock) * 0.5),  globals.font_garamond)
	render.text2d(x, y, "Press Enter", font_size, gs.Color(1,1,1, fade_sin(screen_clock)), globals.font_garamond)

	y -= 40
	render.text2d(300, y - 20.0, "The MedieCross Project 2010-2015, made for TigSource.com.", 30, gs.Color.Black, globals.font_garamond)
	render.text2d(350, y - 50.0, "Code : Emmanuel Julien - Art : Francois Gutherz", 30, gs.Color.Black, globals.font_garamond)
	render.text2d(360, y - 80.0, "Animation : Ryan Hagen - Engine : Harfang3D", 30, gs.Color.Black, globals.font_garamond)
예제 #9
0
import random

if getattr(sys, 'frozen', False):
	app_path = os.path.dirname(sys.executable)
else:
	app_path = os.path.dirname(os.path.realpath(__file__))

gs.LoadPlugins(gs.get_default_plugins_path())

# gs.plus.create_workers()
render.init(1024, 921, os.path.normcase(os.path.realpath(os.path.join(app_path, "pkg.core"))))
# render.init(1920, 1200, os.path.normcase(os.path.realpath(os.path.join(app_path, "pkg.core"))), 1, gs.Window.Fullscreen)
gs.MountFileDriver(gs.StdFileDriver())

# get the big resolution
size = render.get_renderer().GetCurrentOutputWindow().GetSize()

big_resolution = gs.Vector2(160, 144)
big_resolution = gs.Vector2(1920, 1200)


size_pixel = gs.Vector2(size.x / big_resolution.x, size.y / big_resolution.y)
half_size_pixel = size_pixel * 0.5

gameboy_palette = [gs.Color(50/255, 60/255, 37/255),
				   gs.Color(83/255, 101/255, 61/255),
				   gs.Color(117/255, 141/255, 86/255),
				   gs.Color(151/255, 174/255, 122/255)
				   ]

예제 #10
0
	print("Can't parse: %s" % (','.join(map(str, sys.exc_info()))))
	sys.exit(1)

if getattr(sys, 'frozen', False):
	app_path = os.path.dirname(sys.executable)
else:
	app_path = os.path.dirname(os.path.realpath(__file__))

gs.LoadPlugins(gs.get_default_plugins_path())

# gs.plus.create_workers()
render.init(1024, 1024, os.path.normcase(os.path.realpath(os.path.join(app_path, "pkg.core"))))
gs.MountFileDriver(gs.StdFileDriver())

# get the big resolution
size = render.get_renderer().GetCurrentOutputWindow().GetSize()

big_resolution = gs.Vector2(160, 144)
# big_resolution = gs.Vector2(60, 44)

size_pixel = gs.Vector2(size.x / big_resolution.x, size.y / big_resolution.y)
half_size_pixel = size_pixel * 0.5

gameboy_palette = [gs.Color(50/255, 60/255, 37/255),
				   gs.Color(83/255, 101/255, 61/255),
				   gs.Color(117/255, 141/255, 86/255),
				   gs.Color(151/255, 174/255, 122/255)
				   ]


def drange(start, stop, step):
예제 #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()
예제 #12
0
for spr_file in os.listdir("data/"):

    if not spr_file.startswith("scaled_"):
        render.init(512, 512, "../pkg.core")

        spr_pic = gs.LoadPicture("@data/" + spr_file)
        w, h = spr_pic.GetWidth(), spr_pic.GetHeight()

        render.uninit()

        render.init(w * scaled_copies, h, "../pkg.core")

        capture_buffer = gs.Picture(w * scaled_copies, h, gs.Picture.RGBA8)

        for i in range(2):
            render.clear(gs.Color(1, 0, 1))
            for i in range(scaled_copies):
                sprite_scale_factor = RangeAdjust(float(i), 0.0,
                                                  float(scaled_copies), 1.0,
                                                  min_factor)
                render.image2d(i * w + (w * (1.0 - sprite_scale_factor) * 0.5),
                               h * (1.0 - sprite_scale_factor) * 0.5,
                               sprite_scale_factor, "@data/" + spr_file)
            # render.sprite2d(512 - 64, 512 - 64, 128, "@data/blink.jpg")
            # render.blit2d(0, 0, 512, 512, 80, 80, 512 - 160, 512 - 160, "@data/owl.jpg")
            render.flip()

        render.get_renderer().CaptureFramebuffer(capture_buffer)
        gs.SavePicture(capture_buffer, "@data/" + "scaled_" + spr_file, 'STB',
                       'format:png')