Indice:
1. Colori
2. val, Colore sfondo e Scritta nel cubo
3. Il codice del cubo
4. Un altra parte del codice
5. Aggiungere scritte e funzioni
Iniziamo! :
1. Prima di tutto inseriamo i colori fondamentali e altri come grigio, ciano, ecc. che servono per i colori delle facciate del cubo, dello sfondo e delle scritte:
silver = Color.new(192,192,192)
red = Color.new(255,0,0)
red = Color.new(255, 0, 0)
green = Color.new(0, 255, 0)
blue = Color.new(0, 0, 255)
black = Color.new(0, 0, 0)
white = Color.new(255, 255, 255)
gray = Color.new(128, 128, 128)
cyan = Color.new(100, 255, 255)
Ovviamente voi potete aggiungerne altri oppure utilizzare quelli che volete durante il codice che vi detterò in seguito, vi spiego brevemente i codici dei colori come prenderli, se vedete bene tra le parentesi ci sono 3 numeri. Es: (255,0,0) questo è blu perchè andando alla tavolozza di Paint e scegliendo il colore a fianco ci sono 4 numeri, il 4° non vi serve in questo momento ma a volte si mette, per "sfumare" un pò il colore.
___________________________________________________________________________
2. Ora vi darò il codice dove ci sarà il val, l'immagine di sfondo che potete fare come volete ma io vi dò un colore "predefinito" da me un celeste sfumato col bianco ed infine delle scritte che potete mettere dentro il cubo. Attenzione: se sono troppo lunghe o troppe parole non ci cacciano nel cubo.
val = 0
logo = Image.createEmpty(128, 64)
logo:clear(gray)
logo:print(20, 20, "PROVA CUBO", black)
Ora vi spiego, il val non dovete cambiarlo assolutamente è da li che vi farà vedere le scritte sul cubo e il cubo, senza quello vedrete lo schermo celeste e bianco sneza niente, poi c'è come già detto prima lo sfondo del cubo, predefinito da me celeste sfumato col bianco cambiando quelle cifre potrete ottenere un risultato diverso, blu sfumato col rosso, rosso con l'arancione, ecc. Poi c'è logo:clear(gray) che dovrebbe "inbianchire" la parte dove ci sarà il cubo così da permettere di vedere il cubo, quello lasciatelo così, ed infine logo:print dove potrete "proiettare" nel cubo la scritta/e dove volete voi a sinistra, a destra, giu, su, ecc. vi ho messo una posizione predefinita in basso a destra, ma poi voi potete metterlo al centro a sinistra e da qualche altra parte, poi c'è la scritta messa da me PROVA CUBO che poi voi potete mettere quello che volete, "CIAO","FIGO XD","HOMEPAGE", ecc.(potete mettere anche minuscolo), ed infine il colore della scritta, potete mettere il nome del colore che sta all'inizio nel punto 1. tipo gray(grigio), black(nero), white(bianco), cyan(ciano, celeste chairo chiaro), ecc. Passiamo al punto 3
___________________________________________________________________________
3. Ora passiamo al codice del cubo, non completamente però, vi spiego qualche cosetta su questo codice che nemmeno io sò spiegare bene :P
cube = {
{0, 0, red, -1, -1, 1}, -- 0
{2, 0, red, -1, 1, 1}, -- 4
{2, 2, red, 1, 1, 1}, -- 5
{0, 0, red, -1, -1, 1}, -- 0
{2, 2, red, 1, 1, 1}, -- 5
{0, 2, red, 1, -1, 1}, -- 1
{0, 0, red, -1, -1, -1}, -- 3
{2, 0, red, 1, -1, -1}, -- 2
{2, 2, red, 1, 1, -1}, -- 6
{0, 0, red, -1, -1, -1}, -- 3
{2, 2, red, 1, 1, -1}, -- 6
{0, 2, red, -1, 1, -1}, -- 7
{0, 0, green, 1, -1, -1}, -- 0
{2, 0, green, 1, -1, 1}, -- 3
{2, 2, green, 1, 1, 1}, -- 7
{0, 0, green, 1, -1, -1}, -- 0
{2, 2, green, 1, 1, 1}, -- 7
{0, 2, green, 1, 1, -1}, -- 4
{0, 0, green, -1, -1, -1}, -- 0
{2, 0, green, -1, 1, -1}, -- 3
{2, 2, green, -1, 1, 1}, -- 7
{0, 0, green, -1, -1, -1}, -- 0
{2, 2, green, -1, 1, 1}, -- 7
{0, 2, green, -1, -1, 1}, -- 4
{0, 0, blue, -1, 1, -1}, -- 0
{2, 0, blue, 1, 1, -1}, -- 1
{2, 2, blue, 1, 1, 1}, -- 2
{0, 0, blue, -1, 1, -1}, -- 0
{2, 2, blue, 1, 1, 1}, -- 2
{0, 2, blue, -1, 1, 1}, -- 3
{0, 0, blue, -1, -1, -1}, -- 4
{2, 0, blue, -1, -1, 1}, -- 7
{2, 2, blue, 1, -1, 1}, -- 6
{0, 0, blue, -1, -1, -1}, -- 4
{2, 2, blue, 1, -1, 1}, -- 6
{0, 2, blue, 1, -1, -1}, -- 5
}
plane = {
{blue, -8, -3, 0},
{cyan, 8, 3, 0},
{blue, 8, -3, 0},
{cyan, 8, 3, 0},
{blue, -8, -3, 0},
{cyan, -8, 3, 0},
}
Da come vedete sembra non capirci niente essendo un pò lungo ma adesso vi spiego meglio. Le prime 2 cifre sono diverse per ogni parte di codice che inizia con { e finisce con } ci sono solo 2 numeri e sono 2 e 0 e servono per regolare il cubo ad ogni facciata, blue, green, red ecc. sono i colori che ptoete cambiare di ogni facciata e qui non c'è bisogno di rispiegare i colori, invece dovrei speigarvi a che servono quelle 3 cifre col meno e senza(sotto inteso +) senza quei numeri il cubo non esisterebbe, uno serve per la profondità, un altro per lo spessore e un altro per l'evidenza(cioè senza sarebbe invisbile, parzialmente visibile o visibile), molte spesso si usa solo al cifra 1 così da far sembrare il cubo "normale" ma se andate a mettere 0 il cubo si "sballerebbe" e non si vedrà bene, quindi quel codice lasciatelo così e se vedete sono uguali per ogni facciata, infine il codice dei colori che li non devo spiegarvi nulla e dovete lasciarlo così(PS: le scritte tipo --4, --6, ecc. potete eliminarle sono solo commenti non leggibile dalla psp ma servono solo per gli sviluppatori per capirne qualcosa ;)). Passiamo al penultimo punto, il 4.
___________________________________________________________________________
4. Beh quei non sò spiegarvi perfettamente il codice e se lo facessi sprecherei mezza giornata, quindi vi dò il codice e vi dico cosa c'è:
while true do
screen:clear()
Gu.start3d()
-- clear screen
Gu.clearDepth(0);
Gu.clear(Gu.COLOR_BUFFER_BIT+Gu.DEPTH_BUFFER_BIT)
-- setup projection and view matrices
Gum.matrixMode(Gu.PROJECTION)
Gum.loadIdentity()
Gum.perspective(75, 16/9, 0.5, 1000)
Gum.matrixMode(Gu.VIEW)
Gum.loadIdentity()
-- setup matrix for triangle
Gum.matrixMode(Gu.MODEL)
Gum.loadIdentity()
Gum.translate(0, 0, -3);
-- draw triangle without texture
Gu.disable(Gu.TEXTURE_2D)
Gum.drawArray(Gu.TRIANGLES, Gu.COLOR_8888+Gu.VERTEX_32BITF+Gu.TRANSFORM_3D, plane)
-- setup texture
Gu.enable(Gu.BLEND)
Gu.blendFunc(Gu.ADD, Gu.SRC_ALPHA, Gu.ONE_MINUS_SRC_ALPHA, 0, 0)
Gu.enable(Gu.TEXTURE_2D);
Gu.texImage(logo)
Gu.texFunc(Gu.TFX_MODULATE, Gu.TCC_RGBA)
Gu.texEnvColor(white)
Gu.texFilter(Gu.LINEAR, Gu.LINEAR)
Gu.texScale(1, 1)
Gu.texOffset(0, 0)
Gu.ambientColor(white)
-- setup matrix for cube
Gum.matrixMode(Gu.MODEL)
Gum.loadIdentity()
Gum.translate(0, 0, -3.5);
Gum.rotateXYZ(val * 0.79 * (Gu.PI/180), val * 0.98 * (Gu.PI/180.0), val * 1.32 * (Gu.PI/180.0))
-- draw cube
Gum.drawArray(Gu.TRIANGLES, Gu.TEXTURE_32BITF+Gu.COLOR_8888+Gu.VERTEX_32BITF+Gu.TRANSFORM_3D, cube)
Gu.end3d()
val = val + 1
if Controls.read():start() then
screen:clear()
break
end
All'interno del codice si iniza con un while e vicino un true do e lasciatelo così, Poi ci sono degli Array, una funzione Matrix e altre funzioni per refolare meglio il cubo. Passiamo alla 5 ed ultimo punto, dopo questo imbarazzante punto 4.
___________________________________________________________________________
5. Infine, finalmente, possiamo scrivere come un normale homebrew qualcosa e aggiungere funzioni, ed ecco un codice esempio:
screen:print(150,10,"PROVA CUBO",black)
pad = Controls.read()
if pad:start() then
System.Quit()
end
screen.waitVblankStart()
screen.flip()
end
screen:print chi non sà a che serve è un codice fondamentale, dove serve a "stampare", proprio dalla parola print, una scritta dal colore che volete voi e dalla posizione xy che voelte voi dello schermo, non superando la norma dello schermo della psp, se non ricordo male è 480, 272. Un esempio che vi ho fatto è screen:print(150,10,"PROVA CUBO",black) 150, 10 è la posizione del testo se cambiate i numeri potrete spostarlo a sinistra, a destra, in basso e in su, "Prova cubo" è la scritta che comparirà sullo schermo della PSP, black non sto qui a dirvi a che serve perchè ve l'ho detto abbondantemente al 1° punto e ovviamente potete cambiarlo nei vari colori che avete aggiunto voi o che vi ho messo io predefiniti. if pad:start then e sotto System.Quit() è un opzione che vi ho messo io come prova e servirà per uscire quando cliccate start potete cambiarlo in pad:square pad:triangle pad:ltrigger(o pad:l) pad:rtrigger(o pad:r) pad:circle pad:cross pad:select pad:up pad:down pad:right pad:left (non ne ricordo altri :P) e potete cambiare anche la funzione tipo attivare l'USB, la flash 0, flash 1, flash 2, flash 3, formattare la memory stick, avviare un UMD, ecc. Ma c'è jak che fa queste tipo di Guide dove spiega approfondendo.
Ecco il download: http://www.megaupload.com/?d=G28S1J5J
Nessun commento:
Posta un commento