Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AlessandroLosavio/Prove1"
Differenze tra le versioni 44 e 45
Versione 44 del 13/06/2011 00.18.36
Dimensione: 19152
Commento:
Versione 45 del 13/06/2011 06.38.16
Dimensione: 19076
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 80: Linea 80:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
What is all this doing? Let's start with the init routine. We initialize the sprite module of Pygame with the pygame.sprte.Sprite.init line. We then set the surface, and call it screen. This will allow us to check to see if the sprite is going off the screen. We then create and set the position of the blank oldsprite variable, which will keep the old position of our sprite. Now we load our stick figure sprite with the pygame.image.load routine, passing it the filename (and path, if it's not in the program's path). Then we get a reference (self.rect) to the sprite which sets up the width and height of the rectangle automatically, and set the x,y position of that rectangle to the position we pass into the routine.

The update routine basically makes a copy of the sprite, then checks to see if the sprite goes off the screen. If so, it's left where it was, otherwise its position is moved the amount we send into it.

Now, after the screen.fill statement, put the code shown on the following page (right-hand side).

Here we create an instance of our class, calling it character. Then we blit the sprite. We create the blank sprite rectangle, and fill it with the background color. We update the surface and start our loop.

Che cos'è tutto questo che sto facendo? Cominciamo con la routine init. Inizializziamo il mosulo sprite di Pygame con la linea the pygame.sprte.Sprite.init. poi impostiamo la superficie e la chiamiamo schermo. Questo ci permetterà di controllare se lo sprite va fuori dallo schermo. Successivamente creiamo e impostiamo la posizione della variabile del vecchio sprite bianco. Ora carichiamo la nostra figura stilizzata con la routine pygame.image.load, mettendogli il nome file (e il percorso se non è nel percorso impostato dal programma). Then we get a reference (self.rect) allo sprite che imposta automaticamente la larghezza e l'altezza del rettangolo e imposta la posizione x,y di quel rettangolo alla posizione che abbiamo impostato nella routine.

L'aggiornamento della routine praticamente crea una copia dello sprite, poi controlla se lo sprite va fuori dallo schermo. Se è così, rimane dov'è, altrimenti la sua posizione viene spostata ala posizione che gli inviamo.

Ora dopo la dichiarazione in screen.fill, inserit il codice riportato nella pagina seguente (right-hand side).

Eccoci qui a creare un'istanza della nostra classe di nome character. Poi '''''blittiamo''''' lo sprite. Creiamo un bianco sprite rettangolare e lo riempiamo con il colore dello sfondo. Aggiorniamo la superficie e iniziamo il nostro ciclo.

Introduzione

Questa pagina è dedicata per le prove delle traduzioni degli articoli di Full Circle Megazine

Edizione 41

Programmare in Python - Parte 15

pagina di riferimento

Questo mese andremo ad esplorare Pygame, un set di moduli progettata per scrivere dei giochi. il sito web è http://www.pygame.org/. Una citazione dal Pygame read-me: "Pygame è una libreria multi-piattaforma progettato per rendere facile la scrittura di software multimediali come i giochi in Python. Pygame richiede il linguaggio Python e la libreria multimediale SDL. Si può anche fare uso di diverse altre biblioteche popolari."

Si può installare Pygame attraverso Synaptic come 'python-game'. Fatelo ora in modo che possiamo andare avanti.

In primo luogo importiamo Pygame (vedi sopra a destra). Successivamente impostiamo os.environ per far si che la nostra finestra sia centrata nel nostro schermo. Dopo di che inizializziamo Pygame, poi impostiamo la finestra Pygame a 800x600 pixel e poi la didascalia. Infine visualizzare la schermata e andare in un ciclo di attesa per una sequenza di tasti o di un evento mouse-button-down. Lo schermo è un oggetto che contiene niente di quello che decidiamo di mettere. È chiamato superficie. Pensate come se fosse un pezzo di carta su cui designeremo le cose.

Non molto eccitante, ma è un inizio. Andiamo a fare un qualcosa di meno noioso. Possiamo cambiare il colore dello sfondo come a un qualcosa di meno scuro. Ho trovato un programma di nome "colorname" che puoi installare attraverso l'Ubuntu Software Center. Questo ti permette di usare la "ruota dei colori" per prendere il colore che ti piace e ti darà i valori RGB o Red, Green, Blue di quel colore. Dobbiamo usare i colori RGB se non vogliamo usare i colori predefiniti che Pygame ci offre. Si tratta di un programma accurato di cui si dovrebbe prendere in considerazione l'installazione.

Subito dopo le dichiarazioni di importazione, aggiungere...

Background = 208, 202, 104

Questo imposterà la variabile Background a tanish. Successivamente dopo la linea pygame.display.set_caption, aggiungere le seguenti linee...

screen.fill(Background) pygame.display.update()

Lo screen.fill() method imposterà il colore a tutto ciò su cui passiamo sopra . la prossima linea, pygame.display.update(), attualmente aggiorna i cambiamenti ai nostri schermi.

Salva questo con il nome di pygame1.py e andremo avanti.

Ora mostreremo alcuni testi nella nostra blanda finestra. Di nuovo iniziamo con l'importare le nostri dichiarazioni e la variabile di assegnazione di background del nostro ultimo programma.

importare pygame da pygame.locals import * import os Background = 208, 202, 104

Ora, aggiungi una variabile aggiuntiva per il colre della nostra font di primo piano.

?FontForeground = 255,255,255 # White

Quindi aggiungeremo nella maggior parte del codice dal nostro ultimo programma (mostrato a destra).

se lo si esegue adesso non è cambiato niente visivamente dal momento che tutti abbiamo aggiunto la definizione in primo piano . Ora dopo la linea screen.fill() e prima della parte del loop del nostro codice, inserire le sguenti linee:

font = pygame.font.Font(None,27) text = font.render('Here is some text', True, ?FontForeground, Background) textrect = text.get_rect() screen.blit(text,textrect) pygame.display.update()

Vai avanti, salva il programma con il nome di pygame2.py ed esegulo. Sulla finestra in alto a sinistra, si dovrebbe vedere il testo “Here is some text”.

Andiamo a scrivere alcuni comandi. In primo luogo, chiamiamo il Font method e lo passiamo a due argomenti. Il primo è il nome della font che desideriamo usare e il secondo è la dimensione della font. In questo momento, ci limiteremo a usare 'None' e lasciare che il sitema scelga un tipo di carattere per noi e impostiamo la dimensione del carattere a 27 punti.

Dopo abbiamo il font.render() method. Questo ha quattro argomenti. In ordine, ci sono i testi che desideriamo mostrare se vogliamo usare l'anti-aliasing (True in questo caso), il colore del carattere in primo piano e infine il colore del carattere di sfondo.

La linea successiva (text.get_rect()) assegna un oggetto rettangolare che useremo per inserire il testo sullo schermo. Questa è una cosa importante dal momento che quasi tutto il resto di cui ci occuperemo è con i rettangoli. (Capirai di più in un momento.) Poi abbiamo il blit sullo schermo. E finalmente aggiorniamo lo schermo per mostrare il nostro testo. Cos'è blit e perché diamine dovrei fare qualcosa che suona così strano? Bene il termine risale al lontano 1970, e veniva da Xerox PARC (che è dove dobbiamo molto della tecnologia di oggi). Il termine era precedentemente chiamato BitBLT che significa Bit (or Bitmap) Block Transfer. Che ha cambiato a Blit (probabilmente perchè è più corto). Praticamente stiamo ploppando la nostra immagine o testo sullo schermo.

quello che se vogliamo che il testo venga centrato sullo schermo invece che sulla riga in alto dove ci vuole un po' di tempo per vedere? Tra la linea text.get_rect() e screen.blit inserite la seguente linea:

textRect.centerx = screen.get_rect().centerx textRect.centery = screen.get_rect().centery

Eccoci qua a mettere centrato l'oggetto sullo schermo (ricorda l'oggetto in superficie) in x e y i pixel di posizione e impostiamo i punti centrali x e y dei valori del nostro oggetto textRect.

Esegui il programma. Ora il nostro testo è centrato con la nostra superficie. Potete inoltre modificare il testo usando (nel nostro semplice codice) font.set_bold(True) e/o font.set_italic(True) a destra dopo la linea pygame.font.Font.

Ricorda abbiamo discusso brevemente sull'impostazione 'None' quando impostiamo il tipo di carattere a un font generico. Diciamo che si desidera utilizzare un font più elaborato. Come ho detto prima il pygame.font.Font() method ha due argomenti. Il primo è il percorso e il nome file della font che vorremmo usare, invece la seconda è la dimensione del carattere. Il problema è il multi-fold a questo punto. Come facciamo a sapere il percorso attuale e il nome del file della font che vorremmo usare? Per fortuna Pygame ha una funzione che ne prende cura per noi. È chiamato match_font. Ecco qui un programma che mostrerà il percorso e il nome del file della font Courier New (in questo caso).

import pygame from pygame.locals import * import os print pygame.font.match_font('Courier New')

Nel mio sistema il valore di ritorno è “/usr/share/fonts/truetype/msttcorefonts/cour.ttf”. Se però il font non viene trovato il valore di ritorno è “None”. Ammettendo il caso che la font È stata trovata allora possiamo assegnare alla variabile il valore di ritorno e di conseguenza possiamo usare i seguenti attributi.

courier = pygame.font.match_font('Courier New') font = pygame.font.Font(courier,27)

Cambiamo la vostra ultima versione del prlogramma per includere queste due linee e lo proviamo di nuovo. La linea in fondo usa anche un carattere che SAI che sarà disponibile nel computer dell'utente, oppure includilo quando distribuisci il tuo programma e codifica il percorso e il nome della font. Ci sono altri modi circa a questo, ma lo lascio capire a voi in modo che possiamo andare avanti.

Mentre il testo è bello, la grafica è migliore. Ho trovato un tutorial veramente carino per Pygame scritto da Peyton ?McCollugh e ho pensato di prenderlo e modificarlo. Per questa parte abbiamo bisogno di iniziare con una figura che si muoverà intorno la nostra superficie. Questa figura è nota come sprite. Utilizzare GIMP o qualche altro strumento e crea una figura stilizzata. Niente di fantastico, solo una generica figura stilizzata. Si assume che state usando GIMP. Iniziate una nuova figura, impostate la entrambe dimensioni lunghezza e larghezza a 50 pixel e nelle opzioni avanzate, impostate 'Fill With' alle opzioni della Trasparenza. Utilizzate lo strumento matita con un pennello di Circolo (03). Disegnate la vostra piccola figura, e salvatelo come stick.png nella stessa cartella che avete usato per il codice. Ecco come appare il mio. Sono sicuro che voi farete di meglio.

Lo so... non sono un'artista. Tuttavia per i nostri scopi basta. Lo abbiamo salvato il file con estensione .png e impostiamo lo sfondo per far si che sia trasparente, in modo che solo le piccole linee nere della nostra figura stilizzata vengano mostrate e non uno sfondo bianco o di un altro colore.

Andiamo a parlare sul programma che vorremmo fare. Vogliamo mostrare una finestra Pygame che ha la nostra figura stilizzata. Vorremmo che la figura si muova quando premiamo qualunque freccia direzionale ammettendo il fatto che non siamo sul bordo dello schermo e la figura non si può muovere ulteriormente. Vorremo uscire dal gioco quando premiamo il tasto “q”. Ora spostando lo sprite in giro potrebbe sembrare facile, e lo è, ma è un po' più difficile di quanto sembri inizialmente. Iniziamo creando due rettangoli. Uno per lo sprite se stesso e uno che è delle stesse dimensioni ma in bianco. Blittiamo lo sprite sulla superficie per iniziare poi quando l'utente preme un tasto blittiamo il rettangolo bianco sopra lo sprite originale, mostra la nuova posizione e blittiamo lo sprite indietro sulla superficie in una nuova superficie. Più o meno quello che abbiamo fatto con il gioco dell'alfabeto l'ultima volta. Questo è tutto per questo programma. Ci darà un'idea di come mettere effettivamente un elemento grafico sullo schermo e muoverlo.

Quindi iniziamo un nuovo programma e lo chiamiamo pygame4.py. Posizionalo nella cartella che abbiamo usato durante questo tutorial. Questa volta utilizzeremo uno sfondo di colore verde menta, quindi i valori dovrebbero essere 0, 255, 127 (vedi sopra).

Successivamente creiamo una classe che gestirà la nostra grafica o sprite (pagina successiva, in basso a sinistra mostrato). Mettete questo parametro dopo le importazioni.

Che cos'è tutto questo che sto facendo? Cominciamo con la routine init. Inizializziamo il mosulo sprite di Pygame con la linea the pygame.sprte.Sprite.init. poi impostiamo la superficie e la chiamiamo schermo. Questo ci permetterà di controllare se lo sprite va fuori dallo schermo. Successivamente creiamo e impostiamo la posizione della variabile del vecchio sprite bianco. Ora carichiamo la nostra figura stilizzata con la routine pygame.image.load, mettendogli il nome file (e il percorso se non è nel percorso impostato dal programma). Then we get a reference (self.rect) allo sprite che imposta automaticamente la larghezza e l'altezza del rettangolo e imposta la posizione x,y di quel rettangolo alla posizione che abbiamo impostato nella routine.

L'aggiornamento della routine praticamente crea una copia dello sprite, poi controlla se lo sprite va fuori dallo schermo. Se è così, rimane dov'è, altrimenti la sua posizione viene spostata ala posizione che gli inviamo.

Ora dopo la dichiarazione in screen.fill, inserit il codice riportato nella pagina seguente (right-hand side).

Eccoci qui a creare un'istanza della nostra classe di nome character. Poi blittiamo lo sprite. Creiamo un bianco sprite rettangolare e lo riempiamo con il colore dello sfondo. Aggiorniamo la superficie e iniziamo il nostro ciclo.

As long as ?DoLoop is equal to 1, we loop through the code. We use pygame.event.get() to get a keyboard character. We then test it against the event type. If it's QUIT, we exit. If it's a pygame KEYDOWN event, we process it. We look at the key value returned, and compare it to constants defined by Pygame. We then call the update routine in our class. Notice here that we simply are passing a list containing the number of pixels on the X and Y axis to move the character. We bump it by 10 pixels (positive for right or down, negative for left or up. If the key value is equal to “q”, we set ?DoLoop to 0, and so will break out of the loop. After all of that, we blit the blank character to the old position, blit the sprite to the new position, and finally update - but in this case, we update only the two rectangles containing the blank sprite and the active sprite. This saves a tremendous amount of time and processing.

As always, the full code is available at www.thedesignatedgeek.com or at http://fullcirclemagazine.pastebin.com/DvSpZbaj.

There's a ton more that Pygame can do. I suggest that you hop over to their website, and look at the reference page (http://www.pygame.org/docs/ref/index.html). In addition, you can take a look at some of the games that others have put up.

Next time, we will be digging deeper into Pygame by creating a game that comes from my past...my very DISTANT past.

Come contribuire

Siamo sempre in cerca di nuovi articoli da includere nel Full Circle.

Per articoli, guide, idee e per le traduzioni della rivista andate sul nostro wiki: http://wiki.ubuntu.com/UbuntuMagazine

Per favore mandateci i vostri articoli all'indirizzo email: articles@fullcirclemagazine.org

Se volete presentare delle news, speditecelo all'indirizzo email: news@fullcirclemagazine.org

Inviateci i vostri commenti o le vostre esperienze con Linux all'indirizzo email: letters@fullcirclemagazine.org

Le recensioni Hardware/Software dovrebbero essere inviate all'indirizzo email: reviews@fullcirclemagazine.org

Le domande per Q&A dovrebbero andare all'indirizzo email: questions@fullcirclemagazine.org

Gli sfondi dei desktop doverebbero essere inviate all'indirizzo email: misc@fullcirclemagazine.org

... o potete visitare il nostro forum all'indirizzo: www.fullcirclemagazine.org

FULL CIRCLE HA BISOGNO DI TE!

Un magazine non è un magazine senza articoli e Full Circle non è un eccezione.

Abbiamo bisogno delle tue Opinioni, Desktop e Storie.

Inoltre abbiamo bisogno di Recensioni (giochi, apps e hardware), gli articoli "How-To" (su qualsiasi oggetto di K/X/Ubuntu) e qualsiasi domande o suggerimenti che potreste avere.

Spediscilo all'inidirizzo: articles@fullcirclemagazine.org

Full Circle Team

Editor - Ronnie Tucker ronnie@fullcirclemagazine.org

Webmaster - Rob Kerfia admin@fullcirclemagazine.org

Comms Mgr - Robert Clipsham mrmonday@fullcirclemagazine.org

Podcast - Robin Catling podcast@fullcirclemagazine.org

Editore & Correzione

Mike Kennedy

David Haas

Lucas Westermann

I nostri ringraziamenti sono rivolti a Canonical, ai vari translation team di tutto il mondo e a Thorsten Wilms per il nuovo logo di Full Circle.

Deadeline dell'edizione #42:

Domenica 10 Ottobre 2010.

Data di rilascio dell'edizione #42:

Venerdì 29 Ottobre 2010.

How-to - Scrivere per Full Circle Magazine

How-to - Scrivere per Full Circle Magazine

Scritto da Ronnie Tucker

Guide

L'unica regola per scrivere un articolo è che deve essere comunque collegato ad Ubuntu o ad una delle molte derivate ​​di Ubuntu (Kubuntu, Xubuntu, Lubuntu ecc).

Scrivete il vostro articolo con qualunque software scegliete. Vorrei raccomandare OpneOffice, ma PER CORTESIA CONTROLLA L'ORTOGRAFIA E LA GRAMMATICA!

Scrittura

Per cortesia indicate nel vostro articolo dove vorreste che venisse posizionata un'immagine in particolare. Per favore non mettete immagini in embed nel vostro documento OpenOffice.

Immagini

Le immagini dovrebbero essere in formato JPG con una compressione bassa.

Riguardo le dimensioni dell'immagine: se avete un dubbio inviate lo screengrab a piene dimensioni e noi scaleremo l'immagine.

Se state scrivendo una recensione per cortesia seguite le linee guida che sono mostrate qui.

Per una più dettagliata lista delle regole stilistiche e per gli errori più comuni si prega di fare riferimento all'indirizzo: https://wiki.ubuntu.com/UbuntuMagazine/Style - In breve: Ortografia US, niente parole combinate (es: l33t) e niente smile.

Quando siete pronti a presentare il vostro articolo per favore inviatecelo all'indirizzo email: articles@fullcirclemagazine.org

Se non si è capaci di scrivere un articolo ma vi affacciate nei Forum di Ubuntu, inviateci interessanti argomenti che potremmo stampare.

Scrittori non-inglesi

Se la vostra lingua nativa non è l'inglese non vi preoccupate. Scrivete l'articolo e un revisore di bozze lo leggerà per voi e correggerà qualunque errore grammaticale e ortografico. Non solo state aiutando il magazine e la comunità, ma vi aiuteremo a migliorare il vostro inglese!

Recensioni

Giochi/Applicazioni

Mentre scrivete una recensioni riguardante i Giochi/Applicazioni per favore siate chiari nello scrivere:

  • titolo del dioco
  • chi ha creato il gioco
  • se è gratis o a pagamento
  • dove lo si può trovare (link download/URL della home page)
  • se è un gioco nativo per Linux o avete usato Wine
  • il vostro giudizio con un massimo di cinque
  • un sommario con punti positivi e negativi

Hardware

Mentre scrivete una recensioni riguardante l'hardware per favore siate chiari nello scrivere:

  • marca e modello dell'hardware
  • in quale categoria vorreste inserire questo hardware
  • eventuali difetti che si potrebbero incontrare durante l'utilizzo del hardware
  • se è necessario aver bisogno di usare driver Windows
  • il vostro giudizio con un massimo di cinque

Non bisogna essere esperti per scrivere un articolo - scrivete una recensione che riguarda i giochi, le applicazioni e l'hardware che usate tutti i giorni.

Domande & Risposte

Scritto da Gord Campbell

Esiste un modo per registrare l'audio in streaming?

Ci sono vari modi probabilmente la via più facile è quella di usare Outrec. Per le istruzioni d'uso, scrivere su Google "outrec Ubuntu" e visitare il primo risultato della ricerca.


La mia scheda wireless non funziona sul mio laptop HP G62.

Connettere il laptop al router attraverso il cavo Ethernet, eseguire Amministrazione → Driver Hardware. Selezionare il driver Broadcom STA e fare click su "Attiva".


Ho comprato una scheda audio USB. Quando l'ho inserita non funzionava. Cosa dovrei fare?

Andare su Sistema → Preferenze → Audio e nella sezione "Uscita" selezionare il dispositivo USB.


Ho un PC Dell Inspiron 9400 con una scheda video ATI Radeon Mobility X1400. Ho un monitor esterno connesso tramite il cavo VGA. Quando ho provato a usare il monitor esterno come estensione del mio schermo principale, l'immagine va tutto ondulato e a scatti.

Installare xorg.driver.fglrx tramite Synaptic, poi riavvia il PC. L'ATI Catalyst Control Centre ora dovrebbe funzionare.


Pensate che Samba sia un pochino meglio per i nuovi utenti di Ubuntu nella versione 10.10?

CategoryHomepage