Python Forum
[PyGame] Help! Character won't move! - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Game Development (https://python-forum.io/forum-11.html)
+--- Thread: [PyGame] Help! Character won't move! (/thread-11040.html)



Help! Character won't move! - keyfive - Jun-19-2018

Hi, I am a new programmer. My red cube is not moving

import pygame
import time
import random
import sys

pygame.init()

#screen variables
sWidth = 1000
sHeight = 700

#colours
red = (255,0,0)
black = (0,0,0)
white = (255,255,255)

#Main mechanics
gDisplay = pygame.display.set_mode((sWidth,sHeight))
clock = pygame.time.Clock()
pygame.display.set_caption('Zube')

def gameStart():

    #Mechanics
    gDisplay.fill(white)
    pygame.display.update()
    clock.tick(60)

    #Shapes and stuff
    playerStartingx = 64
    playerStartingy = sHeight - 100
    player = pygame.draw.rect(gDisplay, red, (playerStartingx,playerStartingy, 60, 60), 0)
    LRC = 0
    pygame.display.update()

    #Game Loop Variable
    playing = True

    while playing:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    LRC = -50

                elif event.key == pygame.K_RIGHT:
                    LRC = 50

            if event.type == pygame.KEYUP:
                if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                    LRC = 0


        playerStartingx += LRC

gameStart()



RE: Help! Character won't move! - metulburr - Jun-19-2018

X has already been set to 64.you need to update that every time and redraw


RE: Help! Character won't move! - keyfive - Jun-20-2018

(Jun-19-2018, 08:47 PM)metulburr Wrote: X has already been set to 64.you need to update that every time and redraw

So... what do I do?


RE: Help! Character won't move! - metulburr - Jun-20-2018

sorry i was on mobile last time.

You need to have this in the while loop to update the location every frame
Quote:
player = pygame.draw.rect(gDisplay, red, (playerStartingx,playerStartingy, 60, 60), 0)



RE: Help! Character won't move! - keyfive - Jun-21-2018

(Jun-20-2018, 01:45 AM)keyfive Wrote:
(Jun-19-2018, 08:47 PM)metulburr Wrote: X has already been set to 64.you need to update that every time and redraw

So... what do I do?

It is still not working! Sad

import pygame
import time
import random
import sys

pygame.init()

# screen variables
sWidth = 1000
sHeight = 700

# colours
red = (255, 0, 0)
black = (0, 0, 0)
white = (255, 255, 255)

# Main mechanics
gDisplay = pygame.display.set_mode((sWidth, sHeight))
clock = pygame.time.Clock()
pygame.display.set_caption('Zube')


def gameStart():
    # Mechanics
    gDisplay.fill(white)
    pygame.display.update()
    clock.tick(60)

    # Shapes and stuff
    playerStartingx = 64
    playerStartingy = sHeight - 100

    LRC = 0
    pygame.display.update()

    # Game Loop Variable
    playing = True

    while playing:

        for event in pygame.event.get():

            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    LRC = -50

                elif event.key == pygame.K_RIGHT:
                    LRC = 50

            if event.type == pygame.KEYUP:
                if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                    LRC = 0
            player = pygame.draw.rect(gDisplay, red, (playerStartingx, playerStartingy, 60, 60), 0)
        playerStartingx += LRC


gameStart()