Advertisement
Guest User

Game

a guest
Dec 5th, 2019
663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.01 KB | None | 0 0
  1. import pygame
  2. from pygame.locals import *
  3. import time
  4. import sys
  5. from PygameNetworking import ClientManager
  6.  
  7. Client = ClientManager()
  8.  
  9. class Timer():
  10.     def __init__(self):
  11.         self.LastTime = time.time()
  12.     def GetTimer(self):
  13.         return time.time() - self.LastTime
  14.     def ResetTimer(self):
  15.         self.LastTime = time.time()
  16.  
  17. class GameApp():
  18.     def __init__(self):
  19.         pygame.init()
  20.         self.window_size = [640,480]
  21.         self.screen = pygame.display.set_mode(self.window_size)
  22.         pygame.display.set_caption("Multiplayer Game")
  23.  
  24.         self.instancieds = {}
  25.  
  26.         self.get_timer = Timer()
  27.         self.update_timer = Timer()
  28.  
  29.         self.colors = {
  30.             "white":[255,255,255],
  31.             "green":[0,255,0],
  32.             "gray":[195,195,195]
  33.         }
  34.         self.player = {
  35.             "object":pygame.Rect(310,230,10,10),
  36.             "color":self.colors["green"],
  37.             "speed":10,
  38.             "delay":Timer()
  39.         }
  40.  
  41.         self.update()
  42.  
  43.     def update(self):
  44.         while True:
  45.             Client.ReceiveData()
  46.             if Client.connected == False:
  47.                 Client.Connect()
  48.             else:
  49.                 if self.get_timer.GetTimer() >= 0.05:
  50.                     Client.GetInfos()
  51.                     self.get_timer.ResetTimer()
  52.                 if self.update_timer.GetTimer() >= 0.033:
  53.                     self.UpdatePlayer()
  54.                     self.update_timer.ResetTimer()
  55.  
  56.             if Client.my_info != None:
  57.                 print(Client.my_info)
  58.  
  59.             for event in pygame.event.get():
  60.                 if event.type == pygame.QUIT:
  61.                     pygame.quit()
  62.                     sys.exit()
  63.  
  64.             self.screen.fill(self.colors["white"])
  65.  
  66.             self.DrawOthers()
  67.             pygame.draw.rect(self.screen, self.player["color"], self.player["object"])
  68.             self.PlayerMovement()
  69.  
  70.             pygame.display.update()
  71.  
  72.     def PlayerMovement(self):
  73.         pressed = pygame.key.get_pressed()
  74.  
  75.         if self.player["delay"].GetTimer() > 0.04:
  76.             if pressed[K_UP] and self.player["object"].y > 0 and not pressed[K_LEFT] and not pressed[K_RIGHT]:
  77.                 self.player["object"].y -= self.player["speed"]
  78.             if pressed[K_RIGHT] and self.player["object"].x < (self.window_size[0] - 10):
  79.                 self.player["object"].x += self.player["speed"]
  80.             if pressed[K_DOWN] and self.player["object"].y < (self.window_size[1] - 10) and not pressed[K_LEFT] and not pressed[K_RIGHT]:
  81.                 self.player["object"].y += self.player["speed"]
  82.             if pressed[K_LEFT] and self.player["object"].x > 0:
  83.                 self.player["object"].x -= self.player["speed"]
  84.             self.player["delay"].ResetTimer()
  85.  
  86.     def UpdatePlayer(self):
  87.         Dict = {"Position":[self.player["object"].x, self.player["object"].y]}
  88.         Client.UpdatePlayerDict(Dict)
  89.  
  90.     def DrawOthers(self):
  91.         if Client.players_info != None:
  92.             for id in Client.players_info:
  93.                 if id != Client.my_info["ID"]:
  94.                     try:
  95.                         if not id in self.instancieds:
  96.                             self.instancieds[id] = {"object":pygame.Rect(Client.players_info[id]["Position"][0], Client.players_info[id]["Position"][1],10,10)}
  97.                         else:
  98.                             self.instancieds[id]["object"].x = Client.players_info[id]["Position"][0]
  99.                             self.instancieds[id]["object"].y = Client.players_info[id]["Position"][1]
  100.  
  101.                         pygame.draw.rect(self.screen, self.colors["gray"], self.instancieds[id]["object"])
  102.                     except:
  103.                         pass
  104.  
  105. GameApp()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement