当前位置: 首页>>代码示例>>Python>>正文


Python GameState.removePlayer方法代码示例

本文整理汇总了Python中gamestate.GameState.removePlayer方法的典型用法代码示例。如果您正苦于以下问题:Python GameState.removePlayer方法的具体用法?Python GameState.removePlayer怎么用?Python GameState.removePlayer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在gamestate.GameState的用法示例。


在下文中一共展示了GameState.removePlayer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Server

# 需要导入模块: from gamestate import GameState [as 别名]
# 或者: from gamestate.GameState import removePlayer [as 别名]
class Server(object):
	"""Server object.
	"""
	
	def __init__(self):
		
		# Maak socket aan en luister.
		self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
		self.sock.setblocking(0)
		self.sock.bind((HOSTNAME, PORT))
		
		print "Server listening at '%s:%i'" % (HOSTNAME, PORT)
		
		# Game state.
		self.gameState = GameState()
		
		# Lijst met alle connections.
		self.connections = {}
		
	def handleRequest(self, data, address):
		"""Handel een request af.
		"""
		id = int(data.split(" ")[0])
		command = data.split(" ")[1]
		args = " ".join(data.split(" ")[2:])
		
		# Connecten.
		if command == "connect":
			
			# Informatie ophalen uit packet.
			name = args
			id = getNextId()

			# Check of de speler met die naam al bestaat.			
			if self.gameState.containsPlayerWithName(name) == False:
				# Hij bestaat nog niet - toevoegen.
				
				# Connectie opslaan.
				self.connections[id] = address
				print "Player connected: %s (ID:%i)" % (name, id)
	
				# Player toevoegen aan game.
				self.gameState.addPlayer(name)
				
				# Welcome command terugsturen naar client.
				welcomeString = "0 welcome %s %i" % (name, id)
				self.sock.sendto(welcomeString, address)
	
			else:
				# Hij bestaat al - niet toestaan.
				
				# Stuur denied command terug naar de client.
				print "Player denied: %s (name in use)" % name
				deniedString = "0 denied %s player name in use" % name
				self.sock.sendto(deniedString, address)

		# Disconnecten.
		elif command == "disconnect":
			name = args
			print "Player disconnected: %s (ID:%i)" % (name, id)
			self.gameState.removePlayer(name)
			del(self.connections[id])

		# Moven.
		elif command == "move":
			name = args.split(" ")[0]
			velX = int(args.split(" ")[1])
			velY = int(args.split(" ")[2])
			#print "Moving player %s to %i %i" % (name, velX, velY)
			self.gameState.movePlayer(name, velX, velY)

		# Onbekend request.
		else:
			print "Unknown network command: %s" % data
		
	def run(self):
		"""Run de main loop van de server.
		"""

		# Eeuwig blijven draaien.
		while True:

			# Lees de socket uit tot er niks meer beschikbaar is deze tick.
			empty = False
			while not empty:
				
				# Haal gegevens op.
				try:
					data, address = self.sock.recvfrom( 1024 )
					
				# Except voor als er niks meer is.
				except socket.error:
					empty = True
				
				# Else voor als er wel wat is.
				else:
					#print "Received message:", data
					self.handleRequest(data, address)
			
			# Verstuur naar iedereen de nieuwe posities.
#.........这里部分代码省略.........
开发者ID:rappie,项目名称:platformo_multiplayer_poc,代码行数:103,代码来源:server.py

示例2: Client

# 需要导入模块: from gamestate import GameState [as 别名]
# 或者: from gamestate.GameState import removePlayer [as 别名]

#.........这里部分代码省略.........
            QApplication.setQuitOnLastWindowClosed(True)
            self.send(Message.RequestChatHistory)

        elif msg == Message.CurrentState:
            self.handleStateChange(State.Lobby, args[0])

        elif msg == Message.BeginOwnershipList:
            self.mainWindow.boardWidget.setUpdatesEnabled(False)

        elif msg == Message.Ownership:
            (t, player, count) = args
            t = self.game.board.getTerritory(t)
            t.owner = self.game.getPlayer(player)
            t.troopCount = count
            if t.owner:
                self.mainWindow.boardWidget.updateTerritoryOwner(t.name, t.owner.name)
                self.mainWindow.boardWidget.updateTerritoryTroopCount(t.name, count)

        elif msg == Message.EndOwnershipList:
            self.mainWindow.boardWidget.setUpdatesEnabled(True)
            self.mainWindow.playerInfo.updateStatistics()

        elif msg == Message.BeginCardList:
            pass

        elif msg == Message.Card:
            self.game.clientPlayer.cards.append(Card(*args))
        
        elif msg == Message.EndCardList:
            self.mainWindow.updateStatistics()

        elif msg == Message.PlayerLeft:
            name = args[0]
            self.game.removePlayer(name)
            self.mainWindow.chat.addLine(Line(Line.PlayerLeft, target=name))
            self.mainWindow.playerInfo.removePlayer(name)

        elif msg == Message.PlayerLeftDuringGame:
            name = args[0]
            self.mainWindow.chat.addLine(Line(Line.PlayerLeft, target=name))

        elif msg == Message.ColorChanged:
            name = args[0]
            color = args[1:]
            self.game.setPlayerColor(name, color)
            self.mainWindow.chat.changePlayerColor(name, color)
            self.mainWindow.chat.addLine("%s has changed their color." % (name))
            self.mainWindow.playerInfo.changePlayerColor(name, color)

        elif msg == Message.NameChangeTaken:
            self.mainWindow.chat.addLine("That name is already taken.")

        elif msg == Message.NameChangeSuccess:
            name = args[0]
            self.game.setPlayerName(self.game.clientPlayer.name, name)

        elif msg == Message.NameChanged:
            before = args[0]
            after = args[1]
            self.game.setPlayerName(before, after)
            self.mainWindow.chat.changePlayerName(before, after)
            self.mainWindow.chat.addLine("%s changed their name to %s" % (before, after))
            self.mainWindow.playerInfo.changePlayerName(before, after)

        elif msg == Message.TurnChanged or msg == Message.CurrentPlayer:
            name = args[0]
开发者ID:dhrosa,项目名称:empyre_old,代码行数:70,代码来源:__init__.py


注:本文中的gamestate.GameState.removePlayer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。