Forum >> Programmazione Python >> Videogames >> Riferimento

Pagina: 1

Salve sto usando la libreria Pygame per iniziare a fare un gioco in python come compito del mio corso di programmazione di videogiochi. Siccome l'anno scorso usavo C# per programmare devo abituarmi a questo linguaggio. Nel gioco ho fatto una classe player che ha un oggetto classe Army che contiene una lista di Bullet. Il problema sta nel dire all'oggetto Army che il suo proprietario è l'oggetto player:

Class Army:

def __init__(self, owner, quantity):

self.Owner = owner

etc.

Class Player:

def __init__(self, x, y):

self.bullets = Army("non so cosa", 10)

etc.

(le ho scritte così per risparmiare spazio)

In C# usavo this per riferire se stesso come parametro, qui non so cosa usare. Se provo a usare self mi da errore (anche se non so se è questo il motivo): TypeError: 'module' object is not callable

Ho messo tutti gli import che servono dove servono, perché devo fare un file a classe.

Qualcuno sa come risolvere il problema?

Grazie



Perché scrivi il codice che NON ti dà problemi e invece descrivi solo vagamente a parole il codice che ti dà problemi? Non c'è niente di male (almeno tecnicamente... poi insomma) nel codice che hai postato:

>>> class Army:                                
...   def __init__(self, owner, quantity):     
...     self.owner = owner                     
...                                            
>>> class Player:                              
...   def __init__(self):                      
...     self.bullets = Army('pippo', 15)       
...                                            
>>> p = Player()                               
>>> p                                          
<__main__.Player object at 0x0000007BB7EB15C0> 
>>> p.bullets                                  
<__main__.Army object at 0x0000007BB7EB1588>
Quindi ci dev'essere qualche errore che fai nel codice che non hai postato.




https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
no quando istanzio l'oggetto Army dentro player non devo dare un testo XD devo passargli l'oggetto player che lo sta usando, in modo che dentro la classe Army posso usare delle variabili dell'owner player.









--- Ultima modifica di FranciR97 in data 2018-11-04 14:19:15 ---
P.S. sto usando l'editor Visual Studio Code per scrivere il codice

Codice, please. Codice.
https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
Ok ho notato che funzionava così come lo avevo scritto. Da sta mattina che sto davanti al computer cercando di ampliare il gioco e aggiustandolo. Adesso sto risolvendo pian piano i problemi che continuano a spuntare come funghi, ma ti invio lo stesso il codice aggiornato adesso, così magari puoi dirmi se c'è qualcosa che non va. Ripeto che ho iniziato da poco python, abbiamo fatto solo una lezione e non ci hanno spiegato tutte ste gran cose, molto ho dovuto cercarlo per conto mio. Dimmi se riesci a usare il file, altrimenti non so se c'è un altro modo per farti vedere il codice XD
Allegati
No, scusa, abbi pazienza. Intendo dire il codice che ti dà problemi.


Posta quelle venti, trenta righe di codice che riguardano il problema che hai e l'errore che ricevi. Cerca di capire, davvero: non posso scaricare uno zip, scompattarlo, navigare per tutto il codice del tuo progetto, trovare il punto problematico, capire che cosa stai facendo, immaginare che cosa vuoi fare, vedere il problema e dirti la soluzione. Cioè, poi naturalmente magari qualcuno che ha voglia di farlo lo trovi. Ma in genere nei forum si fa così: si isola il codice che dà problemi e lo si posta.

https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
il primo post, era lì il problema, ma ormai che mi avevi risposto avevo gia risolto. grazie lo stesso della disponibilità


Pagina: 1



Esegui il login per scrivere una risposta.