Seite 1 von 1

(pygame)Ich brauche hilfe beim sprite rotieren!

Verfasst: Samstag 16. November 2019, 21:39
von PReFaCT
Wenn ich einen Knopf (w,a,s,d) drücke soll sich dass Auto drehen und in die Richtung "Fahren". Doch wenn ich jetzt mit dem Code "Fahren" will dreht es sich immer 90grad in eine richtung auch wenn ich zwei mal z.b. W drücke.



Code: Alles auswählen

import pygame

pygame.init()

display_width = 1080
display_hight = 800

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


gameDisplay = pygame.display.set_mode((display_width, display_hight))
pygame.display.set_caption("racinggame")
clock = pygame.time.Clock()

carImg = pygame.image.load(r"C:\Users\PReFaCT\Desktop\car.png")

def car (x,y):
    gameDisplay.blit(carImg, (x,y))


x = (display_width * 0.45)
y = (display_hight * 0.8)

x_change = 0
y_change = 0



crashed = False

#mainloop
while not crashed:
    #events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            crashed = True


        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                x_change = -5
                
            if event.key == pygame.K_d:
                x_change = 5
            if event.key == pygame.K_w:
                y_change = -5
            if event.key == pygame.K_s:
                y_change = 5

            
            rotate = pygame.transform.rotate
            if event.key == pygame.K_d:
                carImg = rotate(carImg, 90)
            elif event.key == pygame.K_a:
                carImg = rotate(carImg, 90)
            if event.key == pygame.K_w:
                carImg = rotate(carImg, 90)
            elif event.key == pygame.K_s:
                carImg = rotate(carImg, 90)




        if event.type == pygame.KEYUP:
            if event.key == pygame.K_a or event.key == pygame.K_d or event.key == pygame.K_w or event.key == pygame.K_s :
                x_change = 0
                y_change = 0

    


    

    x += x_change
    y += y_change



    gameDisplay.fill (white)
    car(x,y)

    pygame.display.update()
    #FPS
    clock.tick(144)

#pygame ende
pygame.quit()
quit()

Re: (pygame)Ich brauche hilfe beim sprite rotieren!

Verfasst: Samstag 16. November 2019, 22:23
von __deets__
Statt jedes Mal um 90 grad zu drehen, musst du pro richtung entsprechend drehen. Und dabei immer das Ursprungs Bild nehmen, und so rotieren das es zur aktuellen Bewegung passt.

Re: (pygame)Ich brauche hilfe beim sprite rotieren!

Verfasst: Montag 18. November 2019, 18:35
von PReFaCT
__deets__ hat geschrieben: Samstag 16. November 2019, 22:23 Statt jedes Mal um 90 grad zu drehen, musst du pro richtung entsprechend drehen. Und dabei immer das Ursprungs Bild nehmen, und so rotieren das es zur aktuellen Bewegung passt.
und wie ? xD Ich finde im Internet nichts passendes.

Re: (pygame)Ich brauche hilfe beim sprite rotieren!

Verfasst: Montag 18. November 2019, 19:07
von Sirius3
Programmieren heißt auch, selbst nachzudenken. Du weißt schon, wie man das Bild dreht, jetzt mußt Du nur noch das ursprüngliche Bild im den richtigen Winkel drehen, statt das aktuelle immer um 90grad egal welche Taste gedrückt wurde.