Merge branch 'main' of github.com:Kum1ta/PTME_Transcendence
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/09/13 16:20:58 by tomoron #+# #+# #
|
# Created: 2024/09/13 16:20:58 by tomoron #+# #+# #
|
||||||
# Updated: 2024/09/20 12:53:09 by tomoron ### ########.fr #
|
# Updated: 2024/09/20 21:19:25 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ class Game:
|
|||||||
waitingForPlayerLock = False
|
waitingForPlayerLock = False
|
||||||
waitingForPlayer = None
|
waitingForPlayer = None
|
||||||
ballWidth = 0.15
|
ballWidth = 0.15
|
||||||
playerLength = 1
|
playerLength = 1 + (ballWidth * 2)
|
||||||
limits = {
|
limits = {
|
||||||
"left" : -3.5 + ballWidth,
|
"left" : -3.5 + ballWidth,
|
||||||
"right" : 3.5 - ballWidth,
|
"right" : 3.5 - ballWidth,
|
||||||
@ -41,6 +41,7 @@ class Game:
|
|||||||
self.ballPos = {"pos":(0, 0), "up": False}
|
self.ballPos = {"pos":(0, 0), "up": False}
|
||||||
self.speed = Game.startSpeed
|
self.speed = Game.startSpeed
|
||||||
self.ballVel = (self.speed, 0)
|
self.ballVel = (self.speed, 0)
|
||||||
|
self.score = [0, 0]
|
||||||
|
|
||||||
if(withBot):
|
if(withBot):
|
||||||
self.join(socket)
|
self.join(socket)
|
||||||
@ -155,6 +156,18 @@ class Game:
|
|||||||
print("ball position :", ballPos[0])
|
print("ball position :", ballPos[0])
|
||||||
return(playerPos - ballPos[0])
|
return(playerPos - ballPos[0])
|
||||||
|
|
||||||
|
async def scoreGoal(self, player):
|
||||||
|
print("a player suffured from a major skill issue")
|
||||||
|
self.score[player-1] += 1
|
||||||
|
print("new score :", self.score)
|
||||||
|
self.p1.sync_send({"type":"game","content":{"action":6, "is_opponent": player == 2}})
|
||||||
|
self.p2.sync_send({"type":"game","content":{"action":6, "is_opponent": player == 1}})
|
||||||
|
await asyncio.sleep(4.5)
|
||||||
|
self.prepareGame(True)
|
||||||
|
await asyncio.sleep(3)
|
||||||
|
self.prepareGame()
|
||||||
|
return;
|
||||||
|
|
||||||
async def updateBall(self):
|
async def updateBall(self):
|
||||||
now = time.time()
|
now = time.time()
|
||||||
delta = now - self.lastUpdate
|
delta = now - self.lastUpdate
|
||||||
@ -165,23 +178,14 @@ class Game:
|
|||||||
round(currentBallPos[1] + (delta * velZ), 5))
|
round(currentBallPos[1] + (delta * velZ), 5))
|
||||||
if(newBallPos[1] <= Game.limits["back"] or newBallPos[1] >= Game.limits["front"]):
|
if(newBallPos[1] <= Game.limits["back"] or newBallPos[1] >= Game.limits["front"]):
|
||||||
playerDistance = self.getPlayerDistance(newBallPos)
|
playerDistance = self.getPlayerDistance(newBallPos)
|
||||||
print("player distance :", playerDistance)
|
if(playerDistance >= -(Game.playerLength / 2) and playerDistance <= Game.playerLength / 2):
|
||||||
if(playerDistance >= -1 and playerDistance <= 1):
|
velX = -((self.speed * 0.80) * (playerDistance / (Game.playerLength / 2)))
|
||||||
print("colided")
|
|
||||||
velX = -((self.speed * 0.80) * playerDistance)
|
|
||||||
velZ = self.speed - abs(velX)
|
velZ = self.speed - abs(velX)
|
||||||
print("velocity : " , velX , ", ", velZ)
|
|
||||||
|
|
||||||
if(newBallPos[1] > 0):
|
if(newBallPos[1] > 0):
|
||||||
velZ = -velZ
|
velZ = -velZ
|
||||||
else:
|
else:
|
||||||
print("a player suffured from a major skill issue")
|
print("distance :", playerDistance)
|
||||||
self.p1.sync_send({"type":"game","content":{"action":6, "is_opponent": newBallPos[1] < 0}})
|
await self.scoreGoal(1 if newBallPos[1] < 0 else 2)
|
||||||
self.p2.sync_send({"type":"game","content":{"action":6, "is_opponent": newBallPos[1] > 0}})
|
|
||||||
await asyncio.sleep(3)
|
|
||||||
self.prepareGame(True)
|
|
||||||
await asyncio.sleep(3)
|
|
||||||
self.prepareGame()
|
|
||||||
return;
|
return;
|
||||||
elif(newBallPos[0] <= Game.limits["left"] or newBallPos[0] >= Game.limits["right"]):
|
elif(newBallPos[0] <= Game.limits["left"] or newBallPos[0] >= Game.limits["right"]):
|
||||||
velX = -velX
|
velX = -velX
|
||||||
|
Reference in New Issue
Block a user