timer

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
Tim0123
User
Beiträge: 24
Registriert: Mittwoch 10. Februar 2021, 14:35

Hey
kann man einen Timer machen der 2 Sekunden wartet und dann etwas macht ?
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Ja. Wenn es ungefähr 2 Sekunden sein dürfen, dann sogar sehr sehr simpel:

Code: Alles auswählen

import time

if __name__ == "__main__":
    print("start")
    time.sleep(2)
    print("etwas")
Tim0123
User
Beiträge: 24
Registriert: Mittwoch 10. Februar 2021, 14:35

aber bei time.speep wird das ganze programm aufgehalten oder ? das heißt das der Hintergrund auch 2 Sekunden einfriert ich meine das das im Hintergrund laufen soll
Tim0123
User
Beiträge: 24
Registriert: Mittwoch 10. Februar 2021, 14:35

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
        d -= 1

    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)
das ist mein code und ich will einen Sprung machen können aber wenn ich ihn gerade mache dann fliegt er einfach nur hoch
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

Du mußt Dir einfach die Zeit merken und innerhalb der while-Schleife gegen die aktuelle Zeit prüfen und dann entsprechend reagieren.
Tim0123
User
Beiträge: 24
Registriert: Mittwoch 10. Februar 2021, 14:35

versteh ich nich xDkönntest du mir ein code beispiel zeigen ? bin noch nicht so lange in python
Antworten