так что проблема с моим столкновением в том, что когда я прыгаю на одном из своих квадратов, когда я прыгаю по центру, это хорошо, но когда я прыгаю на бок, это отталкивает меня назад ??? Есть ли способ исправить это так, что когда я прыгаю на своем квадрате, он не отбрасывает меня назад, он просто без проблем приземляется на квадрат? вот гифка https://gyazo.com/a5ee7bba49dc557a2a42b64808618d7b все хорошо, когда вы прыгаете на середину квадрата, но когда вы прыгаете на вершине квадрата, вас отталкивают, а на середине вы остаетесь там, мое столкновение находится внизу скрипта
import pygame
pygame.init()
window = pygame.display.set_mode((500,500))
pygame.display.set_caption("for test")
# player1
x = 50
y = 340
height = 50
width = 50
isJump = False
jumpCount = 10
speed = 5
fall = 0
#----------------------
# Square2
xcord = 390
ycord = 320
heights = 60
widths = 60
#-----------------------
# Square2
cordx = 300
cordy = 390
hts = 60
wts = 60
#-----------------------
#FPS
FPS = 60
clock = pygame.time.Clock()
#--------------------
# main Loop
runninggame = True
while runninggame:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
runninggame = False
window.fill((0,0,0))
Player = pygame.draw.rect(window, (105, 0, 105), (x,y,height,width))
Enemy = pygame.draw.rect(window, (255, 0, 255), (xcord,ycord,heights,widths))
Enemy2 = pygame.draw.rect(window, (155, 155, 155), (cordx,cordy,hts,wts))
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if not isJump:
y += fall
fall += 1
# ----------------------------------------------------- # enem1 collisio
# both of my 2 enemy squares collisions push me back when ever I Jump on the top of them on there sides but when I jump on the middle of of both of them it seems to work if I just want it so when I jump on both of my squares I just don't get pushed back
Player.topleft = (x, y)
collide = False
if Player.colliderect(Enemy):
collide = True
y = Enemy.top - Player.height
if Player.right > Enemy.left and Player.left < Enemy.left:
x = Enemy.left - Player.width
if Player.left < Enemy.right and Player.right > Enemy.right:
x = Enemy.right
#------------------------------------------- Enemy 2 Colision
if Player.colliderect(Enemy2):
collide = True
y = Enemy2.top - Player.height
if Player.right > Enemy2.left and Player.left < Enemy2.left:
x = Enemy2.left - Player.width
if Player.left < Enemy2.right and Player.right > Enemy2.right:
x = Enemy2.right
if Player.bottom >= 500:
collide = True
y = 500 - Player.height
if collide:
if keys[pygame.K_SPACE]:
isJump = True
fall = 0
#------------------------------------------------------------------------
else:
if jumpCount > 0:
y -= (jumpCount * abs(jumpCount)) * 0.5
jumpCount -= 1
else:
jumpCount = 10
isJump = False
pygame.display.update()
pygame.quit