jukaukor

pomppiva_superpallo.py

Jan 22nd, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. # pomppaa maan pinnasta, menettää nopeudesta 5 % joka pompulla
  2. # putouskiihtyvyys g = 9.81 m/s²
  3. # ei ilmanvastustusta
  4. # alkunopeus 0 m/s
  5. # näytetään 800*600 -pygamen ikkunassa
  6. # Juhani Kaukoranta 22.01.2019
  7. import pygame
  8.  
  9. # alkukorkeys, alkunopeus,pallon säde, putouskiihtyvyys
  10. y0 = 10.0
  11. v0 = 0.0
  12. t0 = 0.0
  13. r = 0.25
  14. g = 9.81
  15. # Maa 9.81 m/s², Kuu 1.622 m/s², Mars = 3.74 m/s², voit muuttaa g:n arvoa
  16. Dt = 1/300.0
  17. T = 7000
  18. y = y0
  19. v = v0
  20. t = t0
  21. pomput = 0
  22. # pallo 400 pixelin = 10 m korkeudella maasta
  23. # pallon säde r = 0.25 m = 10 pixeliä
  24.  
  25. (width,height) = (800,600)
  26. screen = pygame.display.set_mode((width, height))
  27. pygame.display.set_caption("Pomppiva pallo")
  28. black = (0,0,0)
  29. yellow =(255,255,0)
  30. red = (255,0,0)
  31. screen.fill(black)
  32. pygame.draw.line(screen, red, (100,500),(700,500), 4)
  33. pygame.display.flip()
  34. # pomppiminen alkaa
  35. for j in range (0,T) :
  36. v = v - g*Dt
  37. y = y + v*Dt-g*Dt*Dt/2
  38.  
  39. pygame.draw.circle(screen, yellow, (400, int(500-40*y)), int(40*r))
  40. pygame.display.flip()
  41. # ruudun päivytyksen viive vakioidaan
  42. pygame.time.delay(2)
  43. pygame.draw.circle(screen, black, (400, int(500-40*y)), int(40*r))
  44. # onko pallo lattiassa
  45.  
  46. if y <= r + 0.03 and v < 0:
  47. v = -0.95*v
  48. pomput = pomput+1
  49. t = t + Dt
  50. pygame.display.set_caption("Pomppiva pallo: Pomppuja "+str(pomput))
Advertisement
Add Comment
Please, Sign In to add comment