Considerato che al tempo c'erano diversi interessati ed alla luce del format che mi ha fatto perdere il mio engine 2d (avendo inoltre rovinato i backup) ho deciso di riscrivere tutto in Python perché lo sto usando per un corso in università (Data Structures and Algorithms).
La mia intenzione è postare qui i risultati ottenuti giornalmente sia per premunirmi dai crash, sia per dare qualcosa alla comunità :)
Non mi dilungherò sulla teoria, quella se volete la potete trovare ovunque, darò solo qualche scratch.
Risorse:Se comunque non capite qualcosa, non esitate a chiedere :)
Versione 0001: Visualizzare una finestra
finestra.py
#!/usr/bin/python import pygame, sys from pygame.locals import * class GameWindow(object): game_running = True def __init__(self,title,width=640,height=480): self.width = width self.height = height pygame.init() self.schermo = pygame.display.set_mode((width,height),DOUBLEBUF) pygame.display.set_caption(title) def game_end(self): sys.exit(0) def run(self): clock = pygame.time.Clock() while (self.__class__.game_running): clock.tick(60) for evento in pygame.event.get(): self.input(evento) self.draw() pygame.display.flip() self.game_end() def input(self,evento): if evento.type == QUIT: self.__class__.game_running = False; else: print evento def draw(self): self.schermo.fill(0x39d2c2) finestra = GameWindow("Finestra Colorata") finestra.run()
(nota per i mod: modifichereste il css per aumentare la leggibilità?)
Spiegazioni:
- Tutti i commenti iniziano per # (cancellletto)
La prima riga serve soltanto per gli utilizzatori di sistemi linux/unix per poter eseguire lo script direttamente da shell:
invece di scrivere
python finestra.py
è possibile eseguire lo script con
./finestra.py
avendo settato in precedenza i permessi
chmod +x finestra.py
- l'import è la parola chiave per importare delle librerie, in questo caso pygame che si occupa di tutto quello che ci serve per il gioco e sys che contiene alcune funzioni basilari di sistema
- La classe
Tutte le classi in python devono avere un padre da cui ereditano, object è la classe base.
Lo schema è class Nomeclasse(classepadre) - Le variabili dentro una classe ma non dentro il metodo sono variabili di classe
per accedervi dalla stessa classe ho usato il costrutto self.__class__.nomevariabile
sono accessibili al di fuori anche a chi non conosce il nome della classe ed anche se non sono state ancora create delle istanze della stessa - I metodi
I metodi sono le funzioni di una classe, come primo argomento devono avere self che viene automaticamente passato nel momento in cui viene chiamata la funzione da un elemento (finestra.run() diventa classe[finestra].run(finestra) ) - Pygame
Questa spiegazione è a richiesta ovvero potete postare chiedendo cosa non capite ed io ve la spiego (preferisco questo rispetto a lunghe spiegazioni esaustive che annoiano tutti, anche per capire a che livello siete)
Modificato da Keroro, 15 February 2012 - 02:20 AM.