Seite 1 von 1

springen

Verfasst: Mittwoch 10. Februar 2021, 15:03
von Tim0123

Code: Alles auswählen

import pygame, sys

#bewegt den Hintergrund
def draw_bg():
    screen.blit(bg_surface, (bg_x_pos, 0))
    screen.blit(bg_surface, (bg_x_pos + 2000, 0))


pygame.init()

screen = pygame.display.set_mode((2000, 1300))
clock = pygame.time.Clock()
## TODO: Bild machen

#game variablen
bg_x_pos = 0
gravity = 0.25
zug_movement = 0
zug_kmh = 4

#Bilder initialisieren
bg_surface = pygame.image.load("assets/sprites/bg.png").convert_alpha()
zug_surface = pygame.image.load("assets/sprites/zug.png").convert_alpha()
zug_surface = pygame.transform.scale2x(zug_surface)
#rects
zug_rect = zug_surface.get_rect(center = (100, 950))

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

        if event.type == pygame.KEYDOWN:
            #springen
            if event.key == pygame.K_SPACE:
                zug_movement = 0
                zug_movement -= 12

    if zug_rect.y <= 950:
        gravity = 0
    if zug_rect.y >= 950:
        gravity = 0.25

    bg_x_pos -= 3
    #springen
    zug_rect.centery += zug_movement
    zug_movement += gravity
    draw_bg()
    if bg_x_pos <= -2000:
        bg_x_pos = 0

    #die Bilder auf den Bildschiem bringen

    screen.blit(zug_surface, zug_rect)

    pygame.display.update()
    #frames
    clock.tick(120)
ich will wenn ich Space tippe das der Wagen Zug springt aber wenn ich space tippe dann fliegt er einfach nur noch hoch und er soll wenn er bei den Schienen ist wieder landen

Re: springen

Verfasst: Donnerstag 11. Februar 2021, 11:29
von ThomasL
Ich tippe auf zug_movement zu groß (-12) oder gravity zu klein (0.25).

Re: springen

Verfasst: Donnerstag 11. Februar 2021, 12:30
von Tim0123
das funktioniert nicht