Ejemplo n.º 1
0
	def sceneGamepadCheck(self):
		if GAMEPADDER not in logic.getSceneList()[0].pre_draw:
			logic.getSceneList()[0].pre_draw.insert(0, GAMEPADDER)
			print("NOTICE: GAMEPADDER() Scene Fix -", logic.getSceneList()[0].name)
			GAMEPADDER()
			return False

		return True
Ejemplo n.º 2
0
def applyGraphics():
	graphics = logic.globalDict["GRAPHICS"]

	if config.EMBEDDED_FIX == True:
		return

	if SCREENSHOT not in logic.getSceneList()[0].post_draw:
		logic.getSceneList()[0].post_draw.append(SCREENSHOT)

	## RESOLUTION ##
	X = render.getWindowWidth()
	Y = render.getWindowHeight()

	print("GRAPHICS:\n\tResolution", X, Y)

	## DEBUG ##
	debug = graphics["Debug"]
	render.showFramerate(debug[1] and debug[0])
	render.showProfile(debug[2] and debug[0])
	render.showProperties(debug[3] and debug[0])

	## VSYNC ##
	if graphics["Vsync"] == True:
		render.setVsync(render.VSYNC_ON)
		print("\tVsync ON")
	elif graphics["Vsync"] == False:
		render.setVsync(render.VSYNC_OFF)
		print("\tVsync OFF")

	## SHADERS ##
	glsl = ["lights", "shaders", "shadows", "ramps", "extra_textures"]

	for setting in glsl:
		render.setGLSLMaterialSetting(setting, True)

	if graphics["Shaders"] == "LOW":
		for setting in glsl:
			render.setGLSLMaterialSetting(setting, False)
		render.setAnisotropicFiltering(1)
		print("\tShaders LOW\n\tAnisotrpic OFF\n\tMipmap NEAR")

	elif graphics["Shaders"] == "MEDIUM":
		for setting in glsl:
			if setting == "shaders":
				render.setGLSLMaterialSetting(setting, False)
			else:
				render.setGLSLMaterialSetting(setting, True)
		render.setAnisotropicFiltering(4)
		print("\tShaders MED\n\tAnisotrpic x4\n\tMipmap NEAR")

	elif graphics["Shaders"] == "HIGH":
		for setting in glsl:
			render.setGLSLMaterialSetting(setting, True)
		render.setAnisotropicFiltering(16)
		render.setMipmapping(2)
		print("\tShaders HIGH\n\tAnisotrpic x16\n\tMipmap FAR")
Ejemplo n.º 3
0
def main():

    cont = logic.getCurrentController()
    owner = cont.owner

    player_num = str(owner["player_num"])
    stock_num = str(owner["Stocks"])

    delay = owner.sensors["Respawn Delay"]
    collision = owner.sensors["Blast Zone"]

    if collision.positive:
        owner["Dead"] = True

    if owner["Dead"]:

        if owner["Stocks"] == 1:

            ko_sound = owner.actuators["KO"]
            ko_sound.startSound()

            overlay_objects = logic.getSceneList()[1].objects
            stock_name = "P" + player_num + " Stock" + stock_num
            overlay_objects[stock_name].visible = False

            scene = logic.getCurrentScene()
            stage_props = scene.objects["Stage Properties"]
            stage_props["Game Over"] = True

        elif delay.positive:

            owner["Stocks"] -= 1

            # Spawn locations are stored in the stage properties.
            objects = logic.getCurrentScene().objects
            stage_props = objects["Stage Properties"]

            # Spawn location differs based on the player number.
            spawn_x = "Spawn_" + player_num + "X"
            spawn_z = "Spawn_" + player_num + "Z"

            owner.position.x = stage_props[spawn_x]
            owner.position.z = stage_props[spawn_z]

            owner["Dead"] = False

        else:

            ko_sound = owner.actuators["KO"]
            ko_sound.startSound()

            # Makes the stock icon in the overlay invisible.
            overlay_objects = logic.getSceneList()[1].objects
            stock_name = "P" + player_num + " Stock" + stock_num
            overlay_objects[stock_name].visible = False
Ejemplo n.º 4
0
def CountdownAction():
	
	cont = logic.getCurrentController()
	obj = cont.owner
	scene = logic.getCurrentScene()
	action = cont.actuators['Action']
	scenes = logic.getSceneList()
	dict = logic.globalDict
	level = dict['level']
	
	def Init():
		if not 'init' in obj:
			obj['init'] = 1
			obj['time'] = 0.0
	
	def Update():
		cont.activate(action)
		for i in scenes:
			if 'Score' in i.name:
				i.suspend()
		if obj['time'] > 130.0:
			for i in scenes:
				if 'Level%s' % level in i.name:
					i.resume()
			for i in scenes:
				if 'Score' in i.name:
					i.resume()
			for i in scenes:
				if 'Menu' in i.name:
					i.end()
			scene.end()
		obj['time'] += 1.0
			
	Init()
	Update()
Ejemplo n.º 5
0
    def on_step(self, delta_time):
        self.profile_category = logic.KX_ENGINE_DEBUG_SERVICES
        self.update_blender()

        # If an exit is requested
        if self.check_quit():
            self.invoke_exit()

        # If we are pending an exit
        if self.pending_exit:
            raise OnExitUpdate()

        # Update all scenes
        for scene in logic.getSceneList():
            self.set_current_scene(scene)

            self.update_scene(scene, delta_time)

        # End of frame updates
        self.profile_category = logic.KX_ENGINE_DEBUG_SERVICES

        self.update_keyboard()
        self.update_mouse()
        self.update_scenes()

        if self.allow_update_display and self.use_tick_rate:
            self.profile_category = logic.KX_ENGINE_DEBUG_RASTERIZER
            self.update_render()

        self.current_time += delta_time
Ejemplo n.º 6
0
def scene_change(sceneOld, sceneNew):
    '''
    End of sceneOld, load sceneNew.
    Scene must be str: if scene = scene python object, name is scene.name
    '''
    scenes = gl.getSceneList()
    print("Scenes list in scene_change() =", scenes)
    # Check name
    scnName = []
    for scn in scenes:
        scnName.append(scn.name)
    if not sceneOld in scnName:
        print("  {} isn't in scenes list".format(sceneOld))
    else:
        gl.tempoDict["scene_change"].unlock()
        gl.tempoDict["scene_change"].reset()
        print("  Tempo scene_change reset and unlock")

        for scn in scenes:
            if scn.name == sceneOld:
                scn.end()
                print("  End of scene: {}".format(scn))
        try:
            gl.addScene(sceneNew)
            print("  Scene {0} added".format(sceneNew))
        except:
            print("  Scene {0} doesn't exist: Can't be set.".format(sceneNew))
Ejemplo n.º 7
0
def Level7():

    cont = logic.getCurrentController()
    obj = cont.owner
    scene = logic.getCurrentScene()
    dict = logic.globalDict
    scenes = logic.getSceneList()

    def Init():
        if not 'init' in obj:
            obj['init'] = 1
            dict['level'] = 7
            if not 'Score' in scenes:
                logic.addScene('Score')
            if not 'score' in dict:
                dict['score'] = 0
            dict['levelScore'] = 0
            dict['levelClock'] = 0
            dict['tank_kills'] = 0
            dict['rocket_kills'] = 0
            scene.objects['CamMain']['enemies'] = 1
            dict['breakable'] = False

    def Update():
        pass

    Init()
    Update()
Ejemplo n.º 8
0
def Level1():

    cont = logic.getCurrentController()
    obj = cont.owner
    scene = logic.getCurrentScene()
    dict = logic.globalDict
    scenes = logic.getSceneList()

    def Init():
        if not 'init' in obj:
            obj['init'] = 1
            dict['level'] = 1
            dict['score'] = 0
            for i in scenes:
                if 'Controls' in i.name:
                    i.end()
            if not 'Score' in scenes:
                logic.addScene('Score')
            dict['levelScore'] = 0
            dict['levelClock'] = 0
            dict['tank_kills'] = 0
            dict['rocket_kills'] = 0
            dict['breakable'] = False

    def Update():
        pass

    Init()
    Update()
Ejemplo n.º 9
0
def CountdownAction():

    cont = logic.getCurrentController()
    obj = cont.owner
    scene = logic.getCurrentScene()
    action = cont.actuators['Action']
    scenes = logic.getSceneList()
    dict = logic.globalDict
    level = dict['level']

    def Init():
        if not 'init' in obj:
            obj['init'] = 1
            obj['time'] = 0.0

    def Update():
        cont.activate(action)
        for i in scenes:
            if 'Score' in i.name:
                i.suspend()
        if obj['time'] > 130.0:
            for i in scenes:
                if 'Level%s' % level in i.name:
                    i.resume()
            for i in scenes:
                if 'Score' in i.name:
                    i.resume()
            for i in scenes:
                if 'Menu' in i.name:
                    i.end()
            scene.end()
        obj['time'] += 1.0

    Init()
    Update()
Ejemplo n.º 10
0
	def __init__(self):
		self.main = logic.getSceneList()[0].objects["Main"]

		# Setup player
		self.player = Hero([8, 2, 0])

		# Setup enemies
		locs = ((-8, 7, 0), (-8, 2, 0), (-8, -3, 0))
		self.enemies = []
		for i in locs:
			enemy = Enemy(i)
			enemy.enemy_target = self.player
			self.enemies.append(enemy)

		# Give the player something to shoot at
		self.player.enemy_target = self.enemies[0]

		# Input
		with open(logic.expandPath('//input.conf')) as f:
			self.inputs = input.InputSystem(f, logic.expandPath('//joyconfs'))

		# UI
		self.ui = bgui_bge_utils.System()
		self.ui.load_layout(CombatLayout, self)

		self.prev_time = time.time()
Ejemplo n.º 11
0
def switchMaterialsImage(path, objectName):
	obj = None
	# Search each active scene to find the object with given name
	for scene in logic.getSceneList():
		if objectName in scene.objects:
			obj = scene.objects[objectName]
			break

	if obj is None:
		print('Object ' + objectName + ' not found.')
		return

	"""Create a new Dynamic Texture"""
	# Get the reference pointer (ID) of the internal texture
	ID = texture.materialID(obj, STARTING_MATERIAL)
	
	# Create a texture object
	objectTexture = texture.Texture(obj, ID)
	
	# Create a new source with an external image	
	newSource = texture.ImageFFmpeg(path)
	
	# The texture has to be stored in a permanent Python object
	# NOTE(kgeffen) logic.texture is instantiated in startup.py
	# NOTE(kgeffen) Each object with a dynamic texture has its
	# own texture stored with key = that object's name
	logic.texture[objectName] = objectTexture
	
	# Update/replace the texture
	logic.texture[objectName].source = newSource
	logic.texture[objectName].refresh(False)
Ejemplo n.º 12
0
def update():
    try:
        hud = logic.getSceneList()[-1]
        gameScene = logic.getSceneList()[0]
        Tower1 = gameScene.objects['TowerTeam1']
        Tower2 = gameScene.objects['TowerTeam2']
        player = logic.globalDict['local_user']

        TankHP = hud.objects['TankHP']
        TankHP.text = str(player['Hitpoints'])
        TowerTeamOneHP = hud.objects['Tower1HP']
        TowerTeamTwoHP = hud.objects['Tower2HP']
        TowerTeamOneHP.text = str(Tower1['Tower_Health'])
        TowerTeamTwoHP.text = str(Tower2['Tower_Health'])
    except:
        pass
Ejemplo n.º 13
0
 def getPlayers(self):
     testMode = logic.globalDict['TestMode']
     if not testMode:
         logic.globalDict['numOfPlayers'] = len(self.players)
         if len(self.players) >= 2:
             hud = logic.getSceneList()[-1]
             Waiting = hud.objects['Waiting']
             Waiting['visible'] = False
     else:
         try:
             logic.globalDict['numOfPlayers'] = 20
             hud = logic.getSceneList()[-1]
             Waiting = hud.objects['Waiting']
             Waiting['visible'] = False
         except KeyError:
             pass
Ejemplo n.º 14
0
def main():
    
    cont = logic.getCurrentController()
    owner = cont.owner
    
    game_over = owner.sensors["Game Over"]
    if game_over.positive:
        
        # Suspends the overlay.
        overlay = logic.getSceneList()[1]
        overlay.suspend()
        
        # Sets the game over text visible.
        gameover_text = overlay.objects["GAME!"]
        gameover_text.visible = True
        
        # Activates game over sound.
        cont.activate("Game Over Sound")
        
        
        # Exits the game after a delay.
        gameover_delay = owner.sensors["Game Over Delay"]
        
        if gameover_delay.positive == True:
            cont.activate("Exit Game")
Ejemplo n.º 15
0
def addObject(objectname, spawnname, life=0, scenename=None):
    if life.__class__ == str().__class__:
        scenename = life
        life = 0
    
    scene = getScene(scenename)
    
    objectToAdd = None
    spawnObject = None
    
    if scene:
        if 'KX_GameObject' in str(objectname.__class__):
            objectToAdd = objectname
        else:
            if objectname in scene.objectsInactive:
                objectToAdd = scene.objectsInactive[objectname]
            elif objectname in scene.objects:
                objectToAdd = scene.objects[objectname]
            else:
                _msg('Object "' + objectname + '" could not be found.')
        
        if 'KX_GameObject' in str(spawnname.__class__):
            spawnObject = spawnname
        else:
            if spawnname in scene.objects:
                spawnObject = scene.objects[spawnname]
            else:
                _msg('Spawn Object "' + spawnname + '" could not be found.')
            
        if objectToAdd and spawnObject:
            return scene.addObject(objectToAdd, spawnObject, life)
    else:
        _msg('Invalid Scene: "' + scenename + '"; ' + 'Scenes: ' + str(logic.getSceneList()))
Ejemplo n.º 16
0
 def respawn(self):
     # get the controller
     controller = logic.getCurrentController()
     # get object that controller is attached to
     obj = controller.owner
     scene = logic.getCurrentScene()
     gameScene = logic.getSceneList()[0]
     for key in self.players.keys():
         if self.players[key]['instance'] == obj:
             team = self.players[key]['team']
             if team == 'team1':
                 point = randint(1, 2)
                 spawner = scene.objects["Spawner{}".format(point)]
                 if point == 1:
                     euler = [0, 0, 0.1]
                 else:
                     euler = [0, 0, -3]
             else:
                 point = randint(3, 4)
                 spawner = scene.objects["Spawner{}".format(point)]
                 if point == 3:
                     euler = [0, 0, -3]
                 else:
                     euler = [0, 0, 0.1]
     # set object's world position
     obj.worldPosition = spawner.worldPosition
     obj.localOrientation = euler
Ejemplo n.º 17
0
def init():
    #Get Scenes
    sc1 = G.getSceneList()[1]
    sc2 = G.getCurrentScene()

    #Get ObjectScenes
    scn1 = sc1.objects
    scn2 = sc2.objects

    #Get Cameras
    cam1 = sc1.active_camera
    cam2 = scn2['SkyCam']

    #Get Objects
    sempty = scn2['SunEmpty']
    lempty = scn1['LightsEmpty']
    shadlamp = scn1['Shadow_lamp']
    sun = scn1['Sun_lamp']
    hemi1 = scn1['Hemi1']
    hemi2 = scn1['Hemi2']
    sky = scn2['Sky']
    clouds = scn2['clouds']
    sun_ob = scn2['Sonne']
    moon = scn2['Moon']
    slamp = scn2['SkyShade']

    #Get Class
    global class_sky
    class_sky = class_sky(cam1, cam2, lempty, sempty, shadlamp, sun, hemi1,
                          hemi2, sky, clouds, sun_ob, moon, slamp, sc1, sc2)
Ejemplo n.º 18
0
def init():
	#Get Scenes
	sc1 = G.getSceneList()[1]
	sc2 = G.getCurrentScene()

	#Get ObjectScenes
	scn1 = sc1.objects
	scn2 = sc2.objects

	#Get Cameras
	cam1 = sc1.active_camera
	cam2 = scn2['SkyCam']
	
	#Get Objects
	sempty = scn2['SunEmpty']
	lempty = scn1['LightsEmpty']
	shadlamp = scn1['Shadow_lamp']
	sun = scn1['Sun_lamp']
	hemi1 = scn1['Hemi1']
	hemi2 = scn1['Hemi2']
	sky = scn2['Sky']
	clouds = scn2['clouds']
	sun_ob = scn2['Sonne']
	moon = scn2['Moon']
	slamp = scn2['SkyShade']
	
	#Get Class
	global class_sky
	class_sky = class_sky(cam1, cam2, lempty, sempty, shadlamp, sun, hemi1, hemi2, sky, clouds, sun_ob, moon, slamp, sc1, sc2)
Ejemplo n.º 19
0
def Paused(): #Simple Pause function
	
	cont = logic.getCurrentController()
	obj = cont.owner
	scene = logic.getCurrentScene()
	pause = cont.sensors['Keyboard']
	dict = logic.globalDict
	level = dict['level']
	scenes = logic.getSceneList()
	
	def Init():
		if not 'init' in obj:
			obj['init'] = 1
	
	def Update():
		for i in scenes:
			if 'Score' in i.name:
				i.suspend()
		if pause.positive:
			dict['paused'] = False
			for i in scenes:
					if 'Score' in i.name:
						i.resume()
					if 'Level%s' % level in i.name:
						i.resume()
			scene.end()
	
	Init()
	Update()	
Ejemplo n.º 20
0
def scene_change(sceneOld, sceneNew):
    '''
    End of sceneOld, load sceneNew.
    Scene must be str: if scene = scene python object, name is scene.name
    '''
    scenes = gl.getSceneList()
    print("Scenes list in scene_change() =", scenes)
    # Check name
    scnName = []
    for scn in scenes:
        scnName.append(scn.name)
    if not sceneOld in scnName:
        print("  {} isn't in scenes list".format(sceneOld))
    else:
        gl.tempoDict["scene_change"].unlock()
        gl.tempoDict["scene_change"].reset()
        print("  Tempo scene_change reset and unlock")

        for scn in scenes:
            if scn.name == sceneOld:
                scn.end()
                print("  End of scene: {}".format(scn))
        try:
            gl.addScene(sceneNew)
            print("  Scene {0} added".format(sceneNew))
        except:
            print("  Scene {0} doesn't exist: Can't be set.".format(sceneNew))
Ejemplo n.º 21
0
def Paused():

    cont = logic.getCurrentController()
    obj = cont.owner
    scene = logic.getCurrentScene()
    pause = cont.sensors['Keyboard']
    dict = logic.globalDict
    level = dict['level']
    scenes = logic.getSceneList()

    def Init():
        if not 'init' in obj:
            obj['init'] = 1

    def Update():
        for i in scenes:
            if 'Score' in i.name:
                i.suspend()
        if pause.positive:
            dict['paused'] = False
            for i in scenes:
                if 'Score' in i.name:
                    i.resume()
                if 'Level%s' % level in i.name:
                    i.resume()
            scene.end()

    Init()
    Update()
Ejemplo n.º 22
0
def CountdownAction(): #Pauses the game when countdown is happening and resumes when it should be over.
	
	cont = logic.getCurrentController()
	obj = cont.owner
	scene = logic.getCurrentScene()
	action = cont.actuators['Action']
	scenes = logic.getSceneList()
	dict = logic.globalDict
	level = dict['level']
	
	def Init():
		if not 'init' in obj:
			obj['init'] = 1
			obj['time'] = 0.0
	
	def Update():
		cont.activate(action)
		for i in scenes:
			if 'Score' in i.name:
				i.suspend()
		if obj['time'] > 130.0: #Time it takes for the countdown animation to complete.
			for i in scenes:
				if 'Level%s' % level in i.name: #finds current level scene an resumes it
					i.resume()
			for i in scenes:
				if 'Score' in i.name:
					i.resume()
			for i in scenes:
				if 'Menu' in i.name: #This makes sure the main menu scene was removed and isn't hiding behind everything else.
					i.end()
			scene.end()
		obj['time'] += 1.0
			
	Init()
	Update()
Ejemplo n.º 23
0
    def __init__(self):
        self.register_signals()

        WorldInfo.tick_rate = int(logic.getLogicTicRate())

        # Copy BGE data
        self.use_tick_rate = logic.getUseFrameRate()
        self.animation_rate = logic.getAnimationTicRate()
        self.use_animation_rate = logic.getRestrictAnimationUpdates()

        self.network_scene = next(iter(logic.getSceneList()))
        self.network_scene.post_draw = [self.render_callback]

        # Create sub systems
        self.network_system = self.create_network()
        self.physics_system = PhysicsSystem(self.physics_callback, self.scenegraph_callback)

        # Timing information
        self.current_time = 0.0
        self.last_sent_time = 0
        self.network_tick_rate = 25
        self.metric_interval = 0.10

        # Profile information
        self._state = None

        self.profile = logic.KX_ENGINE_DEBUG_SERVICES
        self.can_quit = SignalValue(self.check_quit())

        # Load world
        Signal.update_graph()
        MapLoadedSignal.invoke()

        print("Network initialised")
Ejemplo n.º 24
0
def Level0(): 
#These level functions are mainly for debugging purposes, giving default values to to score and stuff so the game doesn't throw up errors if I start the game at level 3 instead of at the start.
#They also keep track of the  current level for the rest of the code. These are run by the ground objects of each level.
	
	cont = logic.getCurrentController()
	obj = cont.owner
	scene = logic.getCurrentScene()
	dict = logic.globalDict
	scenes = logic.getSceneList()
	
	def Init():
		if not 'init' in obj:
			obj['init'] = 1
			dict['level'] = 0
			if not 'Score' in scenes:
				logic.addScene('Score')
			logic.addScene('Controls')
			if not 'score' in dict:
				dict['score'] = 0
			if not 'levelscore' in dict:
				dict['levelScore'] = 0
			if not 'levelClock' in dict:
				dict['levelClock']= 0
			if not 'tank_kills' in dict:
				dict['tank_kills'] = 0
			if not 'rocket_kills' in dict:
				dict['rocket_kills'] = 0
			dict['breakable'] = False
	
	def Update():
		pass
	
	Init()
	Update()	
Ejemplo n.º 25
0
    def getscene(self, name=None):
        if not name:
            name = self._id

        for scene in logic.getSceneList():
            if str(scene) == name:
                return scene
Ejemplo n.º 26
0
def Level1():
	
	cont = logic.getCurrentController()
	obj = cont.owner
	scene = logic.getCurrentScene()
	dict = logic.globalDict
	scenes = logic.getSceneList()
	
	def Init():
		if not 'init' in obj:
			obj['init'] = 1
			dict['level'] = 1
			dict['score'] = 0
			for i in scenes:
				if 'Controls' in i.name:
					i.end()
			if not 'Score' in scenes:
				logic.addScene('Score')
			dict['levelScore'] = 0
			dict['levelClock']= 0
			dict['tank_kills'] = 0
			dict['rocket_kills'] = 0
			dict['breakable'] = False
	
	def Update():
		pass
	
	Init()
	Update()
Ejemplo n.º 27
0
def Level7():
	
	cont = logic.getCurrentController()
	obj = cont.owner
	scene = logic.getCurrentScene()
	dict = logic.globalDict
	scenes = logic.getSceneList()
	
	def Init():
		if not 'init' in obj:
			obj['init'] = 1
			dict['level'] = 7
			if not 'Score' in scenes:
				logic.addScene('Score')
			if not 'score' in dict:
				dict['score'] = 0
			dict['levelScore'] = 0
			dict['levelClock']= 0
			dict['tank_kills'] = 0
			dict['rocket_kills'] = 0
			scene.objects['CamMain']['enemies'] = 1
			dict['breakable'] = False
	
	def Update():
		pass
	
	Init()
	Update()		
Ejemplo n.º 28
0
 def leave(self, *args):
     """
     Ends all scenes except the ones you specify.
     arguments = the names of the scenes you want to leave
     """
     for scene in logic.getSceneList():
         if not scene.name in args:
             scene.end()
Ejemplo n.º 29
0
    def leave(self, *args):

        """
        Ends all scenes except the ones you specify.
        arguments = the names of the scenes you want to leave
        """
        for scene in logic.getSceneList():
            if not scene.name in args:
                scene.end()
Ejemplo n.º 30
0
    def dispatch(self):
        accumulator = 0.0
        last_time = self.get_time()
        # TODO determine where logic spikes originate from

        # Fixed time-step
        while not self.can_quit.value:
            current_time = self.get_time()

            # Determine delta time
            step_time = 1 / WorldInfo.tick_rate
            delta_time = current_time - last_time
            last_time = current_time

            # Set upper bound
            if delta_time > 0.25:
                delta_time = 0.25

            accumulator += delta_time

            # Whilst we have enough time in the buffer
            while accumulator >= step_time:

                # Update IO events from Blender
                self.profile = logic.KX_ENGINE_DEBUG_SERVICES
                self.update_blender()

                if self.check_quit():
                    self.quit()

                # Handle this outside of usual update
                WorldInfo.update_clock(step_time)

                # Update all scenes
                for scene in logic.getSceneList():
                    self.set_current_scene(scene)

                    self.update_scene(scene, step_time)

                # End of frame updates
                self.profile = logic.KX_ENGINE_DEBUG_SERVICES

                self.update_keyboard()
                self.update_mouse()
                self.update_scenes()

                if self.use_tick_rate and self.render:
                    self.update_render()

                self.current_time += step_time
                accumulator -= step_time

            if not self.use_tick_rate and self.render:
                self.profile = logic.KX_ENGINE_DEBUG_RASTERIZER
                self.update_render()

            self.profile = logic.KX_ENGINE_DEBUG_OUTSIDE
Ejemplo n.º 31
0
def getSceneByName(name):
	""" Get a scene by its name. Only works with loaded scenes.

	.. deprecated:: 0.3
		Use ``module.scene_game`` or ``module.scene_gui`` instead.

	"""
	for scn in logic.getSceneList():
		if scn.name == name: return scn
Ejemplo n.º 32
0
def getSceneByName(name):
	""" Get a scene by its name. Only works with loaded scenes.

	.. deprecated:: 0.3
		Use ``module.scene_game`` or ``module.scene_gui`` instead.

	"""
	for scn in logic.getSceneList():
		if scn.name == name: return scn
Ejemplo n.º 33
0
	def __init__(self):
		self.scene = logic.getSceneList()[1]

		self.playerFlag = self.scene.objects["playerflagflag"]
		self.playerFlagObject = None
		self.currentPlayer = 0

		self.affPlayers = False

		self.affObjList = []
Ejemplo n.º 34
0
def unload():
    global class_sky
    class_sky.sc2.end()
    class_sky.sun_lamp.endObject()
    class_sky.hemi1.endObject()
    class_sky.hemi2.endObject()
    class_sky.shad_lamp.endObject()
    class_sky.light_empty.endObject()
    class_sky = None
    print(G.getSceneList())
Ejemplo n.º 35
0
def removeScene(scenename):
    scene = getScene(scenename)
    
    if scene:
        if len(logic.getSceneList()) == 1:
            _msg('Cannot remove scene "' + scenename + '"; Last scene in game!')
            return False
        scene.end()
        return True
    return False
Ejemplo n.º 36
0
def getObject(objectname, inactive=False):
    for s in logic.getSceneList():
        if inactive:
            if objectname in s.objectsInactive:
                return s.objectsInactive[objectname]
        else:
            if objectname in s.objects:
                return s.objects[objectname]
    
    _msg('Object "' + objectname + '" could not be found')
Ejemplo n.º 37
0
def unload():
	global class_sky
	class_sky.sc2.end()
	class_sky.sun_lamp.endObject()
	class_sky.hemi1.endObject()
	class_sky.hemi2.endObject()
	class_sky.shad_lamp.endObject()
	class_sky.light_empty.endObject()
	class_sky = None
	print( G.getSceneList())
Ejemplo n.º 38
0
def hud(health, weapon):
    sceneList = logic.getSceneList()

    try:
        if sceneList:
            displayAmmo = sceneList[1].objects["Ammo.001"]
            displayHealth = sceneList[1].objects["Health.001"]
            displayAmmo.text = str(weapon.ammo)
            displayHealth.text = str(health)
    except:
        pass
Ejemplo n.º 39
0
    def __init__(self, world, name):
        try:
            scene = next(s for s in logic.getSceneList() if s.name == name)

        except StopIteration:
            scene = logic.addScene(name)

        self.bge_scene = scene
        self.physics_manager = PhysicsManager()

        super().__init__(world, name)
Ejemplo n.º 40
0
def get_all_scenes():
    """Récupération des scènes"""
    # Liste des objets scènes
    activeScenes = gl.getSceneList()

    # Liste des noms de scènes
    scene_name = []
    for scn in activeScenes:
        scene_name.append(scn.name)

    return activeScenes, scene_name
Ejemplo n.º 41
0
    def __init__(self, world, name):
        try:
            scene = next(s for s in logic.getSceneList() if s.name == name)

        except StopIteration:
            scene = logic.addScene(name)

        self.bge_scene = scene
        self.physics_manager = PhysicsManager()

        super().__init__(world, name)
Ejemplo n.º 42
0
 def hud(self):
     sceneList = logic.getSceneList()
     #displayAmmo = None
     #print(sceneList[1])
     try:
         if(sceneList):#.objects["Ammo.001"]
             displayAmmo = sceneList[1].objects["Ammo.001"]
             displayHealth = sceneList[1].objects["Health.001"]
             displayAmmo.text = str(self.weapon.ammo)
             displayHealth.text = str(self.health)            
     except:
         pass#print("No")        
Ejemplo n.º 43
0
def DieDeathState(self):
    """
	Documentation
	"""
    # Remove HUD
    scenes = logic.getSceneList()

    for i in scenes:
        if i.name == "HUD":
            i.end()
    # Die
    start_groundDeathState(self)
Ejemplo n.º 44
0
    def handler(self):
        if not self.host_clicked:
            if not self.connected:
                self.connected = self.connect()
            if self.connected:
                scene = logic.getCurrentScene()
                try:
                    matches = int(scene.objects['number_of_matches'].text)
                    if matches % 2 == 0:
                        matches += 1
                except:
                    matches = 1

                self.host_clicked = True
                host_server = {
                    'host_server': {
                        'config': logic.globalDict['configlist'],
                        'matches': matches
                    }
                }
                self.manager.sendall(json.dumps(host_server).encode())
                try:
                    self.manager.settimeout(5)
                    print('hi')
                    packet = self.manager.recv(10024)
                    print(packet)
                    packet = json.loads(packet.decode())
                    if "allready_hosting" in packet.keys():
                        dns = packet['allready_hosting']
                        self.message.text = "You are allready hosting a server your server id\n" \
                                            "is stated below"
                        self.message.color = [255, 0, 0, 1]
                    elif "server_full" in packet.keys():
                        self.message.text = "The server is full please try again later!"
                        self.message.color = [255, 0, 0, 1]
                    else:
                        dns = packet['dns']
                        logic.globalDict['dns'] = dns
                        logic.globalDict['host'] = True
                        self.ip = packet['ip']
                        self.port = int(packet['port'])
                        self.connected = False
                        for scene in logic.getSceneList():
                            if scene.name == 'HostScene':
                                logic.globalDict['ip'] = self.ip
                                logic.globalDict['port'] = self.port
                                logic.globalDict['host'] = True
                                scene.replace('Game')
                except socket.error:
                    self.message.text = "It looks like the servers are down\n" \
                                        "Please try again later"
                    self.message.color = [255, 0, 0, 1]
        self.host_clicked = False
Ejemplo n.º 45
0
def getScene(nama):
	daftarScene = logic.getSceneList()
	sLen = len(daftarScene)
	
	i = 0
	while i < sLen:
		if daftarScene[i].name == nama:
			return daftarScene[i]
		
		i += 1
		
	return False
Ejemplo n.º 46
0
def DieDeathState(self):
	"""
	Documentation
	"""
	# Remove HUD
	scenes = logic.getSceneList()

	for i in scenes:
		if i.name == "HUD":
			i.end()
	# Die
	start_groundDeathState(self)
Ejemplo n.º 47
0
def restartScene(scenename):
    if scenename in [True, False]:
        if scenename:
            for i in logic.getSceneList():
                i.restart()
            return True
    else:
        scene = getScene(scenename)
        if scene:
            scene.restart()
            return True
        return False
Ejemplo n.º 48
0
def step2(cont):
	own = cont.sensors['player'].owner
	logic.globalDict['player'] = own
	# * LOAD HUD SCENE
	scenes = logic.getSceneList()

	for i in scenes:
		print(i.name)
		if i.name == "HUD":
			hudScene = i

	hudScene.objects['HUD']['initHUD'] = True
Ejemplo n.º 49
0
def main(cont):
    global scene
    scene = logic.getCurrentScene() 
    scenes = logic.getSceneList()
    camera = cont.owner
    overlay = camera.actuators["Scene"]
    
    # camera state 2 is in the menu
    if camera.state == 2:
        if "play" not in gdict:
            # show menu
            cont.activate(overlay)
            render.showMouse(True)
            logic.setGravity([0,0,-9.8])
        else:
            # start game
            camera.state = 1
            render.showMouse(False)
            scene.objects["Floor"].endObject()
            scene.objects["Spawn"].endObject()
            logic.setGravity([0,0,0])
            scene.objects["Cube"].visible = True
            scene.objects["BondCraft"].visible = True
            return
    print("###############GAME START##################")
    
    
    gdict.clear()
    gdict["free"] = {   "Hydrogen": set(),
                        "Carbon": set(),
                        "Oxygen": set(),
                        "Nitrogen": set(),
                        "Bromine": set()
                     }
    gdict["cations"] = set()
    gdict["atoms"] = set()
    gdict["textures"] = []
    gdict["molecules"] = set()
    gdict["primary"] = "Hydrogen"
    gdict["camera"] = scene.objects["Camera"]
    
    gdict["prim_text"] = scene.objects["prim_text"]
    gdict["prim_text"].resolution = 16
    gdict["text"] = scene.objects["Text"]
    gdict["text"].resolution = 16
    #bind line drawing function
    scene.pre_draw = [draw]
    
    #slow down
    #fps =1000
    #logic.setLogicTicRate(fps)
    #logic.setPhysicsTicRate(fps)
Ejemplo n.º 50
0
def getScene(scenename=None):
    scene = None
    
    if scenename:
        scenelist = logic.getSceneList()
        
        for i in scenelist:
            if i.name == scenename:
                scene = i
    else:
        scene = logic.getCurrentScene()
    
    return scene
Ejemplo n.º 51
0
def get_prop():
    '''Retourne les prop utilisées dans ce script.'''

    # Get active scene list
    activeScenes = gl.getSceneList()

    # Get scene Level_x and Hud
    scene = activeScenes[0]

    # Get list of objects in scene and hud
    scene_ObjList = scene.objects
    dessus = scene_ObjList["Game_Motor"]["vue_dessus"]
    return dessus
Ejemplo n.º 52
0
def step2(cont):
    own = cont.sensors["player"].owner
    logic.globalDict["player"] = own
    # * LOAD HUD SCENE
    scenes = logic.getSceneList()

    for i in scenes:
        if i.name == "HUD":
            hudScene = i

    if "levelInit" in scene.objects:
        logic.globalDict["miniMap"] = scene.objects["levelInit"]["miniMap"]
    hudScene.objects["HUD"]["initHUD"] = True
Ejemplo n.º 53
0
def step2(cont):
    own = cont.sensors['player'].owner
    logic.globalDict['player'] = own
    # * LOAD HUD SCENE
    scenes = logic.getSceneList()

    for i in scenes:
        if i.name == "HUD":
            hudScene = i

    if 'levelInit' in scene.objects:
        logic.globalDict['miniMap'] = scene.objects['levelInit']['miniMap']
    hudScene.objects['HUD']['initHUD'] = True
Ejemplo n.º 54
0
def decode_object(encoded_subject):
    from bge import logic

    scene_id, obj_id, subject = loads(encoded_subject)

    for scene in logic.getSceneList():
        if id(scene) == scene_id:
            break

    else:
        raise ValueError("No BGE scene with id {} found".format(scene_id))

    obj = scene.objects.from_id(obj_id)
    return subject, obj
Ejemplo n.º 55
0
def decode_object(encoded_subject):
    from bge import logic

    scene_id, obj_id, subject = loads(encoded_subject)

    for scene in logic.getSceneList():
        if id(scene) == scene_id:
            break

    else:
        raise ValueError("No BGE scene with id {} found".format(scene_id))

    obj = scene.objects.from_id(obj_id)
    return subject, obj
Ejemplo n.º 56
0
	def Again(self):
		cont = logic.getCurrentController()
		scene = logic.getCurrentScene()
		scenes = logic.getSceneList()
		mouse = cont.sensors['Mouse']
		mouseEvents = logic.mouse.events
		click = mouseEvents[events.LEFTMOUSE]
		dict = logic.globalDict
		level = dict['level']

		if click:
			for i in scenes:
				if 'Level%s' % (level) in i.name:
					i.restart()
			scene.end()
Ejemplo n.º 57
0
	def Next(self):
		cont = logic.getCurrentController()
		scene = logic.getCurrentScene()
		scenes = logic.getSceneList()
		mouse = cont.sensors['Mouse']
		mouseEvents = logic.mouse.events
		click = mouseEvents[events.LEFTMOUSE]
		dict = logic.globalDict
		nextLevel = dict['level'] + 1

		if click:
			for i in scenes:
				if 'Level%s' % (nextLevel - 1) in i.name:
					i.replace('Level%s' % nextLevel)
			scene.end()
Ejemplo n.º 58
0
    def Next(self):
        cont = logic.getCurrentController()
        scene = logic.getCurrentScene()
        scenes = logic.getSceneList()
        mouse = cont.sensors['Mouse']
        mouseEvents = logic.mouse.events
        click = mouseEvents[events.LEFTMOUSE]
        dict = logic.globalDict
        nextLevel = dict['level'] + 1

        if click:
            for i in scenes:
                if 'Level%s' % (nextLevel - 1) in i.name:
                    i.replace('Level%s' % nextLevel)
            scene.end()
Ejemplo n.º 59
0
    def Again(self):
        cont = logic.getCurrentController()
        scene = logic.getCurrentScene()
        scenes = logic.getSceneList()
        mouse = cont.sensors['Mouse']
        mouseEvents = logic.mouse.events
        click = mouseEvents[events.LEFTMOUSE]
        dict = logic.globalDict
        level = dict['level']

        if click:
            for i in scenes:
                if 'Level%s' % (level) in i.name:
                    i.restart()
            scene.end()
    def handle(self):
        if not self.active:
            self.active = True
            scene = logic.getCurrentScene()
            cont = logic.getCurrentController()
            sens = cont.sensors['Message']
            self.input = sens.bodies
            senss = cont.sensors['Always']
            try:
                dns = self.input[
                    0]  # can be changed to whatever just a variable to currently hold it in
            except:
                try:
                    dns = scene.objects['IPInputJoin'].text
                except:
                    dns = "None"
            print(self.input)
            print(dns)

            if not self.connected:
                self.connected = self.connect()
            if self.connected:
                try:
                    self.manager.sendall(
                        json.dumps({
                            "join": dns.upper()
                        }).encode())
                    response = self.manager.recv(1024)
                    response = json.loads(response.decode())
                except:
                    self.message = "It looks like the servers are down\n" \
                                   "Please try again later"
                if 'no_record' in response.keys():
                    self.message.text = "Oops I didn't find a server for this ID."
                    self.message.color = [255, 0, 0, 1]
                elif 'server_info' in response.keys():
                    logic.globalDict['host'] = False
                    logic.globalDict['dns'] = dns
                    logic.globalDict['init'] = False
                    for scene in logic.getSceneList():
                        if scene.name == 'JoinScene':
                            logic.globalDict['ip'] = response['server_info'][
                                'ip']
                            logic.globalDict['port'] = response['server_info'][
                                'port']
                            scene.replace('Game')
                            break
            self.active = False