Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 13981

Player does not move

$
0
0

My player won't move and I don't understand why. I followed a tutorial on how to make it move. I did what the person did but it doesn't move for me.

Here is my code:

import pygamepygame.init()screen = pygame.display.set_mode((800,600))pygame.display.set_caption("use arows")class player:    def __init__(self ,x, y):        self.x = x        self.y = y        self.width = 32        self.height = 32        self.velocity = 0        self.falling = False        self.onGround = False    def detectCollisions(self,x1,y1,w1,h1,x2,y2,w2,h2):        if (x2+w2>=x1>=x2 and y2+h2>=y1>=y2):            return True        elif (x2+w2>=x1+w1>=x2 and y2+h2>=y1>=y2):            return True        elif (x2+w2>=x1>=x2 and y2+h2>=y1+h1>=y2):            return True        elif (x2+w2>=x1+w1>=x2 and y2+h2>=y1+h1>=y2):            return True        else:            return False    def update(self, gravity, blockList):        if (self.velocity < 0):            self.falling = True        collision = False        blockX,blockY =  0,0        for block in blockList:            collision = self.detectCollisions(self.x, self.y, self.width, self.height, block.x, block.y, block.width, block.height )            if collision == True:                blockx = block.x                blocky = block.y                break        if(collision == True):            if (self.falling == True):                self.falling == False                self.onGround== True                self.velocity = 0                self.y = blocky - self.height        if (self.onGround == False):            self.velocity += gravity        self.y -= self.velocity    def render(self,screen):        pygame.draw.rect(screen,(0,0,0),(self.x, self.y, self.width, self.height))class Block:    def __init__ (self, x, y):       self.x = x       self.y = y       self.width = 32       self.height = 32    def render(self,screen):        pygame.draw.rect(screen,(0,0,0),(self.x, self.y, self.width, self.height))gravity = -0.5black = (0,0,0)white = (255,255,255)blue = (50,60,200)clock = pygame.time.Clock()player = player(0,0)# 25 colums and 19 rowslevel1 = [    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],    [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]blockList = []for y in range (0,len(level1)):    for x in range (0,len(level1[y])):        if (level1[y][x] == 1):            blockList.append(Block(x*32, y*32))movex,movey=0,0gameloop = Truewhile gameloop:    for event in pygame.event.get():        if event.type == pygame.QUIT:            gameloop = False    if(event.type == pygame.KEYDOWN):        if (event.key == pygame.K_RIGHT):            movex = 5        elif (event.key == pygame.K_LEFT):            movex = -5    if(event.type == pygame.KEYUP):        if (event.key == pygame.K_RIGHT):            movex = 0        elif (event.key == pygame.K_LEFT):           movex = 0    screen.fill(blue)    for block in blockList:        block.render(screen)    player.update(gravity, blockList)    player.render(screen)    clock.tick(60)    pygame.display.update()pygame.quit()

Viewing all articles
Browse latest Browse all 13981

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>