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
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")
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
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()
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
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))
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()
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()
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()
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()
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)
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
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
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")
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()))
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
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)
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)
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()
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))
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()
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()
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")
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()
def getscene(self, name=None): if not name: name = self._id for scene in logic.getSceneList(): if str(scene) == name: return scene
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()
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()
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()
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()
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
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
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
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 = []
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())
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
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')
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())
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
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)
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
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)
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")
def DieDeathState(self): """ Documentation """ # Remove HUD scenes = logic.getSceneList() for i in scenes: if i.name == "HUD": i.end() # Die start_groundDeathState(self)
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
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
def DieDeathState(self): """ Documentation """ # Remove HUD scenes = logic.getSceneList() for i in scenes: if i.name == "HUD": i.end() # Die start_groundDeathState(self)
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
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
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)
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
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
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
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
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
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
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 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()
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()
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