python - How to make a sprite correct path? -


i trying create small , simple simulation makes meteor appear in middle of screen , move away... until users presses key. while key pressed, path corrected dynamically new path.

i tried 2 different method, first keydown, , pygame.key.get_pressed() function, in both cases, after release key, image "meteor" drops down again orginal path.

i hoping 1 indicate me doing wrong.

here code far:

import pygame,sys pygame.locals import * colors import * import random   fps = 30  fpsclock = pygame.time.clock()   pygame.init()  x_display = 400 y_display = 400  displaysurf = pygame.display.set_mode((x_display, y_display)) displaysurf.fill(silver) pygame.display.set_caption("meteor")  x_real_max = x_display/2 y_real_max = y_display/2 x_center = 0 y_center = 0  xmeteor = 40 ymeteor = 20 xcentermeteor = 0 ycentermeteor = 0 xposmeteor = xcentermeteor + (200 - (xmeteor/2)) yposmeteor = ycentermeteor + (200 - (ymeteor/2))  imgmeteor = pygame.image.load("desktop\imgmeteor.png")  viseffect = 1.05   while true:      xmeteor *= viseffect     ymeteor *= viseffect      xcentermeteor *= viseffect     ycentermeteor *= viseffect      xposmeteor = xcentermeteor + (200 - (xmeteor/2))     yposmeteor = ycentermeteor + (200 - (ymeteor/2))      #pressed  = pygame.key.get_pressed()     #if pressed[pygame.k_w]:         #yposmeteor -= 10      if xmeteor > 150:         xmeteor = 40         ymeteor = 20         xcentermeteor = random.randrange(-100, 100)         ycentermeteor = random.randrange(-100, 100)         xposmeteor = xcentermeteor + (200 - (xmeteor/2))         yposmeteor = ycentermeteor + (200 - (ymeteor/2))      meteor = pygame.transform.scale(imgmeteor, (int(xmeteor),int(ymeteor)))       event in pygame.event.get():         if event.type == quit:             pygame.quit()             sys.exit()         #if event.type == keydown:             #if event.key == k_w:                 #yposmeteor -= 50         #elif event.type == keyup:             #yposmeteor = yposmeteor       displaysurf.blit(meteor, (xposmeteor, yposmeteor))     pygame.display.update()     fpsclock.tick(fps)     displaysurf.fill(silver) 

you're updating wrong variable. yposmeteor clobbered every time through loop, when change variable there no lasting effect. want change either ycentermeteor or ymeteor.


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -