Topic: [risolto] La libreria pygame  (Letto 101 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Gianpatrizio

  • python unicellularis
  • *
  • Post: 17
  • Punti reputazione: 0
    • Mostra profilo
[risolto] La libreria pygame
« il: Aprile 23, 2020, 17:00 »
Buongiorno a tutti, vi anticipo che sono una persona che da poco si è affacciata al linguaggio di programmazione python ma vorrei cercare di imparare il più possibile.
In questi giorni mi sono cimentato nella libreria pygame, e dopo numerosi esperimenti per capire un po' come funzionava, mi sono imbattuto in un problema. Vorrei creare un gioco 2D in qui il personaggio resti fermo e il resto si muove ma dopo avendo fatto decine di tentativi, non riesco a simulare il salto.
Il codice è questo qui:

import pygame

pygame.init()

schermo = pygame.display.set_mode((800, 600))
base = pygame.image.load("base.png")
omino = pygame.image.load("personaggio.png")

def inizializza():
  global basex, basey, base_vely
  global ominox, ominoy
  basex, basey = 0, 281
  base_vely = 0
  ominox, ominoy = 0, 208

inizializza()

def disegna():
  schermo.blit(base, (basex, basey))
  schermo.blit(omino, (ominox, ominoy))

c = True
while c:
  base_vely -= 0.5
  basey += base_vely
 
  pressed = pygame.key.get_pressed()
  if pressed[pygame.K_SPACE]:
    base_vely = + 1
  elif pressed[pygame.K_RIGHT]:
    basex += 1
  elif pressed[pygame.K_LEFT]:
    basex -= 1
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      c = False

  # collisioni
  if basex >= 380 and basex <= 0 and basey >= 280 and basey <= 280:
    basey = 281
 
  schermo.fill((255, 255, 255))
  disegna()
  pygame.display.update()

pygame.quit()
quit()


Avete idee?
Dimenticavo io uso Windows 10 e python 3.8.2
Grazie a tutti coloro che si renderanno disponibili
« Ultima modifica: Maggio 17, 2020, 16:10 da Gianpatrizio »

Offline HGGHGG

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re:La libreria pygame [URGENTE pls rispondete]
« Risposta #1 il: Maggio 12, 2020, 17:13 »
 secondo me dovresti inserire la velocità di aggiornamento(FPS) poi una funzione aggiorna
def aggiorna():
    pygame.display.update()
    pygame.time.Clock().tick(FPS)
while True:
...
aggiorna()

Offline Gianpatrizio

  • python unicellularis
  • *
  • Post: 17
  • Punti reputazione: 0
    • Mostra profilo
Re:La libreria pygame [URGENTE pls rispondete]
« Risposta #2 il: Maggio 15, 2020, 17:06 »
Grazie mille, molto chiaro e preciso. Ho risolto la ringrazio infinitamente

Offline HGGHGG

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re:La libreria pygame [URGENTE pls rispondete]
« Risposta #3 il: Maggio 15, 2020, 19:05 »
Prego