Jump to content
Rpg²S Forum
  • 0

Scene_Testo


Lomax af
 Share

Question

Ciao raga :tongue:

Come va?

Dunque la mia non è una richiesta script ma solo il voler ragionare su di una idea.

Spiego:

 

Avete presente quello script che permette di assegnare il nome all'eroe?

Bene ciò che di quello script mi interessa sono le stringhe che consentono di scrivere qualcosa e memorizzarla.

Vi spiego più dettagliatamente:

 

Io vorrei creare una sorta di Diario che permetta al giocatore di annotare ciò che vuole.

E non che ciò avvenga in automatico.

Come i Diari delle missioni che ci sono in circolazione.

 

Io credo che in questo modo il giocatore si sentirebbe più coinvolto nella storia.

Poi ovvio la scelta di scrive o non scrivere sarà facoltativa così come il quanto scrivere.

 

Però pensateci:

 

Avete un'intuizione e la potrete annotare. Conoscete un cattivone nuovo e siete scampati da una battaglia mortale e potrete scrivere le vostre impressioni che poi verranno memorizzate nel Diario.

Quando salverete la partita e chiuderete il game e poi successivamente riavvierete la partita salvata, ciò che avrete scritto nel Diario rimarrà memorizzato.

 

 

 

Dunque che ne pensate?

Potrebbe risultare interessante?

 

Adesso veniamo al lato tecnico:

 

 

Per realizzare ciò, avevo pensato di creare una sezione con dentro tre windows (ditemi se sbaglio) una, in alto, che indica la data e la pagina del diario, un'altra che sarà il foglio di testo e l'ultima in basso che ospitera le opzioni

Fatto; Cancella; Sfoglia avanti; Sfoglia indietro (inverità basta solo avanti e indietro); i tasti direzionali dx, sx, su, giu permetteranno invece di far scorrere il cursore fra le lettere.

Poi ovvio che tutto ciò verrà accompagnato da un'ottima grafica.

 

 

 

Per adesso non mi viene in mente nientaltro.

 

Qui in questo topic annoterò i progressi, se qualcuno volesse partecipare alla realizzazione anche solo con dei consigli, perchè no?!

 

Aspetto vostri pareri..

Ciao :tongue:

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0
Dunque che ne pensate?

Potrebbe risultare interessante?

Mmmh credo che... un buon giocatore preferirebbe scriversi a mano su un foglio o su un .txt quello che vuole annotare piuttosto che girarsi lettera per lettera una schermata come quella del nome (a meno che tu non voglia solo il modo di scrivere ed assegnare tale modo di scrivere ad ogni lettera della tastiera, ma in quel caso ti serve uno script pure per l'uso completo della tastiera :D)

^ ^

 

Magari ci vorrebbe qualcosa di carino tipo immagini che compaiono dopo ogni evento oppure parole chiave che sbloccano qualcosa :3

^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 0
Io feci una cosa del genere per un progetto con rpgm2000 di tipo investigativo, ad eventi, se lo ritrovo lo posto qui . . . Il progetto non è ovviamente molto giocabile, ma il sistema di annotazioni invece era completo . . .

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

  • 0

@Guardian:

Si intendevo assegnare ad ogni tasto della tastiera una lettera. Sò che non è facile e richiede tempo ma forse qualche script con questa caratteristica credo che ci sia nel web, cerco.

Intanto. . .

@Giver: si se lo trovi postalo così ne comprendo la struttura.

Grazie :tongue:

 

Vi aggiorno..

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0
Si potrebbe fare una lettura di un txt aperto e scrivibile via scena magari..

Iscriviti sul mio canale youtube -

https://www.youtube.com/channel/UCYOxXExvlXiOFfYD1fTFpww?view_as=subscriber

Seguimi su Instagram -

https://www.instagram.com/ancestralguitarist/

---------------------------------------------------------------------------------------------------------------------------------------
Contest vinti
---------------------------------------------------------------------------------------------------------------------------------------

FACE CONTEST # 3
BANNER CONTEST #69

Link to comment
Share on other sites

  • 0

@Squall:

Ehm.. in che senso? La tua idea mi pare interessante, potresti spiegarla più nel dettaglio..

 

Io intanto ho provato a cercare e ho trovato questo:

http://www.rpg2s.net/forum/index.php?showtopic=11045

credo che è un pò inerente a ciò che ha detto Squall (credo)

Adesso leggo un pò cosa dice quel topic.

vi aggiorno..

 

EDIT:

Dunque ho trovato questo:

http://rmrk.net/index.php?topic=32782.0

Se vi downlodate il file ADemo trovere tanti scripts interessanti, fra cui

Patch XP(AIM:PXP)

questo permette ad un altro script di identificare i tasti della tastiera una volta pigiati. come risposta viene visualizzata la lettera corrispondente.

ma non li memorizza.

 

Comunque io mi sto studiando i costrutti usati.

 

A PROPOSITO:

 

per distinguere il maiuscolo dal minuscolo come bisogna fare?

 

dico è sbagliato scrivere così, esempio:

 

n = 1 if Input.trigger?(Input::CAPS_LOCK_A)

 

^ su maiuscola

v giu minuscola

 

n = 2 if Input.trigger?(Input::A)

 

bu? :rovatfl:

Edited by Lomax af

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0
Si mi ricordavo quel topic,comunque non ho capito cosa intendi sul fatto delle maiuscole..

Iscriviti sul mio canale youtube -

https://www.youtube.com/channel/UCYOxXExvlXiOFfYD1fTFpww?view_as=subscriber

Seguimi su Instagram -

https://www.instagram.com/ancestralguitarist/

---------------------------------------------------------------------------------------------------------------------------------------
Contest vinti
---------------------------------------------------------------------------------------------------------------------------------------

FACE CONTEST # 3
BANNER CONTEST #69

Link to comment
Share on other sites

  • 0

Nel senso che se pigio il tasto CAPS_LOCK e rilascio oppure tengo premuto il tasto SHIFT una volta che scriverò qualcosa con la tastiera le lettere si visualizzeranno in MAIUSCOLO <così.

Invece in modalità normale ossia pigiando solo i tasti corrispondenti alle lettere, esse si visualizzeranno

in minuscolo <così.

 

Cioè irigere la differenza di visualizzazione Mm.

 

Comunque credo che ciò che ho scritto nel precedente topic sia sbagliato.

 

Forse è meglio raggruppare in un array e specificare da lì anzichè procedere lettera per lettera.

Bu? :rovatfl:

Sperimento..

 

Vi aggiornerò..

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0

Credo che siano già passate le 12 ore..

Dunque:

 

Studiandomi il topic 11045

Ho annotato tutte le modalità che servono adesso credo che strutturalmente sia semplice l'impostazione.

O meglio, creo una Scena in quel modo e poi la sua window corrispondente

 

Vediamo procedo a tentativi. . . Però bu mi convince poco..

 

Vi aggiorno

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0

Dunque ho qui con me il famoso

MOG - Scene_Name

Questo script è composto da un modulo e 5 MACROsezioni.

Le prime 2 non ci interessano perchè riguardano i draw dei png e la creazione della window che ospiterà i draw e imposterà i vari self.contents.

 

Con Window_NameEdit2

Già forse potremmo rizzarci le orecchie vediamo:

Crea 2 reader (name & index) vediamo perchè..

Ah..si!

In pratica esso gestisce la risposta alla creazione del nome. Dunque noi digitiamo C+I+A+O bene grazie a questa terza MACROsezione di script tutto ciò verrà visualizzato così: CIAO.

 

Tecnicamente parlando:

Dopo aver creato la window corrispondente a ciò che ospiterà la risultante.

Sinceramente questo

name_array=@name.split(//)[0...@max_char] non ho capito bene a che serve.

Credo ma suppongo che stia ad indicare che in quell'array possono essere compresi da 1 fino ad un massimo di png.

Ma ciò che non sò è il .split cosa produce.

 

Comunque sotto indica che in caso non venga visualizzata alcuna lettera verrà risenalato il nome di default.

Comunque tagliamo corto, tutto cio con il print delle lettere non centra nulla, magari ci tornerò dopo.

. . .

. . .

Eccoci qua!!

Window_NameImput2

Che poi è preso da NameImput paro paro.

E per ultimo:

Scene_Name: con i vari richiami alle classi precedenti.

 

Da ciò ne evince che la classe da andar a modificare è Window_NameInput immettendo magari ciò che ho appreso nel topic 11045..almeno penso si debba far così..

 

Dunque programmatori ditemi, sono in errore o sto procedendo per la direzione giusta?

 

 

EDIT:

Nessuno mi da retta ma in questa sezione ci sono abituato.

Comunque procedo sempre da me.

Questi sono i Codici ASCII il che mi rendo conto che post più su avevo fatto una domanda stupida chiedendo di differenziare i caratteri M/m.

Comunque, la tabella ASCII è questa:

http://www.oppo.it/tabelle/tabella_ascii.htm

 

Da ciò ho intenzione di rendere a tutti quei pulsanti una loro funzione testuale.

Ho intenzione di scrivere così:

if Input.trigger(Input::SHIFT_A)

e poi..un'attimo che chiedo in supporto xp, ho 1dubbio..ora riaggiorno.

Edited by Lomax af

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0
Visto che non ho capito molto il tutto,potresti postare proprio lo scene_name? Magari tralasci qualche particolare utile.

Iscriviti sul mio canale youtube -

https://www.youtube.com/channel/UCYOxXExvlXiOFfYD1fTFpww?view_as=subscriber

Seguimi su Instagram -

https://www.instagram.com/ancestralguitarist/

---------------------------------------------------------------------------------------------------------------------------------------
Contest vinti
---------------------------------------------------------------------------------------------------------------------------------------

FACE CONTEST # 3
BANNER CONTEST #69

Link to comment
Share on other sites

  • 0

Questo che vi presenterò é lo Scene_Name di MOG

Anche se diviso in più tagcode è un unico script.

Dunque:

Per prima cosa MOG crea il modulo

module MOG
#tempo della transizione
MSNTT1 = 30
#nome della transizione
MSNTT2 = "004-Blind04-"
end

Questo permette una facile gestione della velocità di esecuzione della transizione e anche determinare quale usare.

Fino a qui non ci interessa al fine del proj

Andiamo avanti:

Poi crea una nuova Window_Base da implementare nello script poichè aggiunge un nuovo draw altrimenti inesistente e altri 3 soliti per determinare livello, classe e nome.

Ossia questo:

class Window_Base < Window
#draw battler
def draw_battler(actor,x,y)
battler = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = battler.width
ch = battler.height
src_rect = Rect.new(0,0,cw,ch)
self.contents.blt(x,y-ch,battler,src_rect)
end

Dunque con questo draw_battler si disegna dentro la scena l'immagine del battler corrispondente all'actor iniziale.

Poi ancora sotto verranno disegnati i tre parametri classici, ovvero..

Il livello:

#draw actor level name
def draw_actor_level_name(actor,x,y)
self.contents.font.color = normal_color
self.contents.draw_text(x,y,120,32,actor.level.to_s,1)
end

Dunque qui dentro cosa avviene?

Spiego subito: si imposta il livello che corrisponde all'actor in questione

Tecnicamente MOG sceglie di gestire solo il colore del font ossia carattere di scrittura ma noi avremmo potuto aggiungere con altri self.contents tipo di font oppure grandezza del font oppure personalizzare il colore con uno di nostra scelta, sostituendo normal_color con text_color(0,0,0,0) mi pare. Dentro la parentesi si sarebbero impostate le tonalità e opacità, ma non ci interessa al fine del proj

Poi vi è..

La classe:

#draw_actor_class
def draw_actor_class_name(actor,x,y)
#colore font standard
self.contents.font.color = normal_color
#disegna la classe corrispondente
self.contents.draw_text(x,y,120,32,actor.class_name,1)
end

Anche qui come per il livello sono validi gli stessi criteri.

E lo stesso per

Il nome:

#Nome eroe corrispondente
def draw_actor_name
self.contents.font.color = normal_color
self.contents.draw_text(x,y,120,32,actor.name,1)
end
end

Dunque perchè qui ci sono due end finali? Perchè uno chiude il def draw_actor_name e il secondo chiude la classe Window_Base

Dunque dentro questa window_base si è capito come disegnare un immagine attraverso draw battler in questo caso. Ma cosa più utile come scrivere dentro una stringa ossia attraverso il metodo

self.contents.draw_text e al costrutto .to_s. Ma a dir la verità non credo mi serva a molto tutto ciò. Poichè quello che vorrei io è uno Scrivere in tempo reale il testo che poi verrà salvato e riletto quando si vuole

Ma comunque andiamo avanti..

Adesso ci addentriamo in

Window_Status_Name:

Ossia la window che ospiterà i 4draw che abbiamo creato in precedenza, qui si imposterà la loro effettiva locazione sul piano cartesiano. Ed in più si determinerà il tipo di font da usare per il livello e la classe.

Ma vediamo nel dettaglio:

class Window_Status_Name < Window_Base
#creazione finestra
def initialize (actor)
super(0,0,320,480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
@actor = actor
self.opacity = 0
refresh
end
#Aggiorna reimpostando tutto
def refresh
self.contents.clear
#inserisce la grafica del actor..
draw_actor_graphic(@actor,50,110)
#inserisce la classe
draw_actor_class_name(@actor,55,395)
#il livello
draw_actor_level_name(@actor,20,120)
#il battler
draw_battler(@actor,20,350)
end
end

Dopo avete presente lo script standard Window_NameEdit presente in ogni progetto, bene!

Implementatelo sotto e rinominatelo

class Window_NameEdit2 < Window_Base

Bene

Adesso copiate Window_NameInput subito dopo l'ultimo end di NameEdit2 e rinnominate Window_NameInput in

class Window_NameInput2 < Window_Base

Adesso inizia la creazione del vero Scene_Name

Ossia:

class Scene_Name
#Si crea il Main
def main
#ossia i collegamenti e i richiami al modulo
#qui si preleva il nome standard dell'eroe
@actor = $game_actors[$game_temp.name_actor_id]
#questa è la finestra che ospiterà la modifica al nome standard
@edit_window = Window_NameEdit2.new(@actor, $game_temp.name_max_char)
#qui si determina l'opacità di NameEdit2
@edit_window.opacity = 0
#si richiama la finestra che ospiterà i caratteri
@input_window = Window_NameInput2.new
#l'opacità di NameInput2
@input_window.opacity = 0
#credo sia lo sfondo
@name_back = Planet.new
#Richiama una picture che farà da fondale
@name_back.bitmap = RPG::Cache.picture("MN_BK")
#profondità
@name_back.z = 10
#opacità
@name_back.opacity = 255
#seconda picture
@name_lay = Plane.new
@name_lay.bitmap = RPG::Cache.picture("Name_Lay")
@name_lay.z = 15
@name_lay.opacity = 255
#richiamo status_name
@name_status_window = Window_Status_Name.new(@actor)
#posizione orizzontale
@name_status_window.x -= 300
#opacità
@name_status_window.contents_opacity = 0
#origine del modulo
Graphics.transition(MOG::MSNTT1, "Graphics/Transitions/" + MOG::MSNTT2)
#ciclo
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
#chiusure
Graphics.freeze
@edit_window.dispose
@input_window.dispose
@name_back.dispose
@name_lay.dispose
@name_status_window.dispose
end

Ora ancora non abbiamo finito. Manca l'update di scene name. Dentro quest'ultimo si imposteranno le ultime congetture ed infine si assegneranno le funzioni ai tasti, quest'ultima cosa è la più interessante, anzi credo che di tutto lo script sia questo ciò che mi serve realmente:

l'assegnazione tasti e la tabella ASCII

Ma finiamo con l'analisi e poi si vedrà..

Dunque..

#Update: aggiorna implementando le novità
def update
#n_b aumenta di 1 in x
@name_back.ox += 1
#condizione se wsn è minore di 0
if @name_status_name.x < 0
#a wsn è += 15 
@name_status_window.x += 15
#e la sua opacità sarà +5
@name_status_window.opacity += 5
#altrimenti se wsn è maggiore o uguale a 0
elsif @name_status_window.x >= 0
@name_status_window.x = 0
@name_status_window.contents_opacity = 255
end
#aggiornamento finestra risultante
@edit_window.update
#aggiornamento finestra di scrittura
@input_window.update

Questo che verrà a mio parere è interessantissimo!

Determina il tasto cancella e ciò è dipeso da questa condizione:

if Input.repeat?(Input::B)
if @edit_window.index = 0
return
end
$game_system.se_play($data_system.cancel_se)
@edit_window.back
return
end

In pratica:

Se nel campo di scrittura si pigia ripetutamente il tasto cancella si reimposta il nome standard e si torna alla scena precedente.

Invece premendo Invio:

if Input.trigger?(Input::C)
if @input_window.character == nil
if @edit_window.name == ""
@edit_window.restore_default
if @edit_window.name == ""
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
return
end
@actor.name = @edit_window.name
$game_system.se_play($data_system.decision_se)
$scene = Scene_Map.new
return
end
if @edit_window.index ==
$game_temp.name_max_char
$game_system.se_play($data_system.buzzer_se)
return
end
if @input_window.character == ""
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
@edit_window.add(@input_window.character)
return
end
end
end

Ed infine dopo l'ultimo end che chiude lo script inserisce

$mog_rgss_Scene_Name = true

In true significa che lo script è attivo.

False disattivo.

E questo era lo script MOG - Scene_Name.

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0

:biggrin: Ciao Raga oggi è il 25 dicembre e qui a Palermo c'è un'aria ugiosa con nuvole dense ma non troppo. Qualche squarcio qua e là e pezzi di cielo azzurro dai quali escono fievoli raggi di sole. Ecco vedete uno di questi mi ha colpito in pieno e mi ha fatto pensare a questo topic! :sisi:

. . .

In realtà è già da parecchio tempo che cerco di trovare un modo per creare un sistema di scrittura tramite script.

Tempi fa avevo interpellato, in questa stessa sede, qualche vostro consiglio che in parte è stato molto utile, poichè mi ha fatto riflettere su alcuni punti. Ad esempio il primo intervento di Guardian che in origine trascurai un pò, poichè accecato dall'impeto creativo. Sorry Guardian ma è un mio difetto, quando ciò un'idea che considero geniale parto a raffica tipo Black Star e non vedo altro, fortuna che dopo col senno di poi, rifletto accuratamente.

. . .

Avevi ragione tu.

E' una palla scrivere in quella maniera.

Cioè andare a selezionare lettera per lettera tramite un cursore il testo da stilare.

Io invece preferisco così, cioè come sto facendo adesso nello scrivere questo post. Ossia digito un tasto a cui ad esso corrisponde un lettera della tastiera.

. . .

Ora Aprendo Rpg maker xp credo sia F2 se non ricordo male, ma comunque.. dicevo, se premo questo tasto si apre un pront di button dove a dei pulsanti pre - impostati dall'editor posso assegnare delle azioni.

. . .

Avevo pensato a questo. Ossia usare questo metodo per creare la cosa.

Solo che i tasti sono limitati a 9 e i button sono pochi. Credo siano

A corrisponde a i due shift

B corrisponde a ESC 0

C corrisponde alla lettera C oppure ad INVIO o SPACE

L corrisponde alla lettera Q

R corrisponde alla lettera W

X corrisponde alla lettera A

Y corrisponde alla lettera S

Z corrisponde alla lettera D

. . .

Il punto è questo i codici di comando tramite script solitamente sono così:

# Quano si preme C
   if Input.trigger?(Input::C)
     # Si conferma il comando selezionato
     case @command_window.index
     when 0  # Nuovo gioco
       command_new_game
     when 1  # Continua
       command_continue
     when 2  # Esci
       command_shutdown
     end

Quello che interessa trarre dall'esempio sopra esposto è il comando:

Input.trigger?(Input:: C )

Dove quella C si potrebbe sostituire con una delle lettere sopra citate nello schema di prima.

. . .

Subito sotto vi appare la conseguenza ossi il case che determinera l'effetto.

 

 

Di per sè il modo per creare questa modalità di scrittura utile credetemi per ciò che andrò a strutturare nel game

(poi mi direte) dicevo, è semplicissima.

Ma

Ma

Ma

Se non fosse per la limitazione dei button non starei qui oggi a necropostare questa vecchia discussione.

Invece vi chiedevo in questo 25 dicembre del 2011

Raga,

esiste un modo per costruire altri button da poter usare ovvero altri tasti così da assegnare nuovi valori ??

. . .

Pensate più funzionalitàdirettamente con un tasto e per me invece, finalmente la realizazione di questo nuovo sistema di salvataggio partita.

. . .

Fatemi sapere, vi prego non ignoratemi grazie grazie grazie :sisi:

Buon pranzo di Natale !!

-------------------------------------------------------------------------------------------------------------------------------------

EDIT:

-------------------------------------------------------------------------------------------------------------------------------------

Dunque praticamente mentre stavo scrivendo questo post in tileset creator ho la possibilità di salvare il file png assegnando un nome alla risorsa !!

. . .

Quindi mi fa scrivere in qualche modo, anche se non considera gli spazi e comunque..

Per fare si ciò si serve di una dll ossia Aworks.dll presente nel tool e in più di uno script modulo che la richiama posto nell'editor di testo.

Quindi niente raga sò dove studiare la cosa se in caso ho qualche dubbio vi interpello mi studio la composizione della dll in questione e lo script che la evoca.

Ciao raga e alla prossima !!

--------------------------------------------------------------------------------------------------------------------------------------

Edited by Lomax af

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0

Mmmmh capito l'edit, ma considera che già esistono script che permettono di usare tutta la tastiera :D XD

^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 0
Mmmmh capito l'edit, ma considera che già esistono script che permettono di usare tutta la tastiera :D XD

^ ^

Esistono ??

Ma io li ho cercati in giro ma disperato non ne ho trovati. Be in primis in questo sito ma..

Nada.

Se ne hai uno a portata di mano mi risparmi un pò di tempo in caso no dovrò crearlo io modificando quello di tileset creator.

ba.. provo a cercare meglio.. in caso faccio buchi nell'acqua chiedo qui.

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0

Ma il tasto cerca è solo mio amico? XD

Ecco qui! ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 0

Forse ho letto male, ma credo di aver trovato una versione che mi sembra più nuova . . .

 

Near Fantastica keyboard input module v 6.1 @ RGP2S

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

  • 0

Grazie raga. :smile:

Non sapete quanto mi avete aiutato :rolleyes:

 

Adesso me li studio tutti e due :rovatfl:

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0

Scene_Testo

Bene raga per esercitarmi sto imparando i 2 scripts presenti in Tileset_creator. Penso l'abbiate tutti, sapete di che tooletto parlo.

Dunque detto questo:

Mi sto occupando di aggiungere nuove funzionalità al programmino.

In realtà il mio scopo è benaltro ma ripeto mi sto esercitando così.

E fino adesso ho scritto questo:

#===============================================================================
# IMPORTANTE PER STUDIARE UN METODO DI scene_testo LOMAX AF ###################
#===============================================================================
 #-----------------------------------------------------------------------------
 # Handles the Typing
 #-----------------------------------------------------------------------------
 def update_typing
   @wtext.set_text(@text)
   #---------------------------------------------------------------------------
   # BOX di modifiche made Lomax:
   #---------------------------------------------------------------------------
   #=begin
   #Qui di seguito vi saranno le nuove funzionalità del sistema di scrittura.
   #ovvero sto migliorando il sistema di scrittura del vecchio tileset-creator
   #=end
   #---------------------------------------------
   # BOX NUMERI:
   #---------------------------------------------
   #=begin
   #Con questo BOX potrete numerare i vostri tileset direttamente dal tool.
   #prima infatti era decisamente scomodo.
   #=end
   #---------------------------------------------
   @text += "0" if Input.trigger?(Keys::N0)
   @text += "1" if Input.trigger?(Keys::N1)
   @text += "2" if Input.trigger?(Keys::N2)
   @text += "3" if Input.trigger?(Keys::N3)    
   @text += "4" if Input.trigger?(Keys::N4)
   @text += "5" if Input.trigger?(Keys::N5)
   @text += "6" if Input.trigger?(Keys::N6)
   @text += "7" if Input.trigger?(Keys::N7)    
   @text += "8" if Input.trigger?(Keys::N8)
   @text += "9" if Input.trigger?(Keys::N9)
   #----------------------------------------------
   #----------------------------------------------
   # CANCELLA TUTTO:
   #----------------------------------------------
   #=begin
   #Con questa funzionalità nuova potrete resettare la parola per riscriverne 
   #un'altra.
   #=end
   #----------------------------------------------
   @text = ""  if Input.trigger?(Keys::BACKSPACE)
   #----------------------------------------------
   #----------------------------------------------
   # LETTERE MAIUSCOLE:
   #----------------------------------------------
   #=begin
   #Questa nuova funzione permetterà di utilizzare le letter in 
   #formato MAIUSCOLO
   #=end
   #----------------------------------------------
   if Input.press?(Keys::SHIFT) 
    if Input.trigger?(Keys::A)
      @text += "A"
    end
    
   end
   #----------------------------------------------
   # LETTERE Minuscole:
   #----------------------------------------------
   if Input.trigger?(Keys::A)
     @text += "a"
   end
   #--------------------------------------------------
   if Input.trigger?(Keys::RETURN)
     @wtile.make_png(@text)
     @command.active = true
     @wtext.dispose
     @wtext = nil
   end
   if Input.trigger?(Keys::ESCAPE)
     @wtext.dispose
     @wtext = nil
     @command.active = true
   end
 end
end
#===============================================================================

Però aimè sono giunto ad una prima difficoltà. Ossia permettere (tenendo premuto il tasto SHIFT) di digitare le lettere della tasiera in modo che si visualizzino MAIUSCOLE.

La condizione che ho imposto è la seguente:

if Input.press?(Keys::SHIFT)
@text += "A" if Input.trigger?(Keys::A)
end

Solo che cosa succede????

Spiego:

Dato che ho imposto anche:

@text += "a" if Input.trigger?(Keys::A)

Per la visualizzazione delle lettere minuscole (qualità standard)

In video mi appare

 

Aa

 

ossia doppia a

cioè tengo pressato SHIFT e digito a e mi appare una doppia a in questo modo: Aa

. . .

Come si risolve?

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0
else ?

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

  • 0
else ?

Infatti!

Non puoi capire! Ci sono riuscito adesso (02:35)

In pratica ho imposto la cosa così:

Esempio:

if Input.press?(Keys::SHIFT) and Input.trigger?(Keys::A)
@text += "A"
else
if Input.trigger?(Keys::A) and not Input.press?(Keys::SHIFT)
@text += 'a'
end
end

 

Non puoi capire i salti di gioia appena mi sono visto printare tutto al posto giusto! :wink:

. . .

Ora con pasienza sto applicando la stessa cosa alle altre lettere.

. . .

Sto migliorando il Tileset Creator v1.0 di Game_guy

. . .

Ma solo per esercitazione con lo script di testo. Appena avrò capito tutto mi prodigherò per creare ..modalità di salvataggio nuove nuove :smile:

Ciao e alla prossima ...

 

Fatto!

Ecco la prossima:

Creare lo spazio fra una parola e l'altra..

:smile:

 

EDIT EDIT EDIT

Fatto!!!!

Ho scritto semplicemente:

@text += " " if Input.trigger?(Keys::SPACE)

 

Adesso che ho imparato ad usare SHIFT mi piacerebbe

creare una condizione simile:

Se io tengo premuto il tasto SHIFT e digito BACKSPACE si cancella tutta la parola
altrimenti
Se digito BACKSPACE senza tenere premuto il tasto SHIFT si cancella lettera per lettera

Una cosa del genere la posso fare implementando come per le lettere Mm, quindi:

if Input.press?(Keys::SHIFT) and Input.trigger?(Keys::BACKSPACE)
@text = ""
else
if Input.trigger?(Keys::BACKSPACE) and not Input.press?(Keys::SHIFT)
(OPERAZIONE LOGICA)
end
end

Solo che a posto di (OPERAZIONE LOGICA) dovrei immettere la conseguenza logica, che io ancora non conosco

cioè @text eccetera eccetera..

vediamo...

..loanding..

Edited by Lomax af

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

  • 0

@text.pop o @text.chop!, con la seconda che funziona di sicuro, mentre la prima non ricordo, ma mi pare di averla usata in passato . . .

 

EDIT - Attento ad attuarli solo se @text include almeno un carattere altrimenti da stringa si trasforma in nil . . . ossia va scritto qualcosa del tipo

 

@text.chop! unless @text == ""

Edited by giver

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

  • 0

Dunque Giv mi sono documentato e in giro aimè su text.chop non spiegano molto però

Quando cercavo (sia lodato Guardian) :smile: la tag chop rgss mi appariva più volte questo:

http://www.rpg2s.net/forum/index.php?showt...mp;#entry158952

Bene analiziamo il suo script (si lodato Slaider):

#============================================================================== 
# ** Modules.Keyboard Input (6.1)                            By Near Fantastica
#                                       Additions By Wachunaga & SephirothSpawn
#------------------------------------------------------------------------------
# * Description :
#
#   The Keyboard InputModule is designed to function as the default Input
#   module does. It is better then other methods keyboard input because as a 
#   key is tested it is not removed form the list. so you can test the same 
#   key multiple times the same loop. This script automatically updates itself
#   with the input module.
#------------------------------------------------------------------------------
# * Syntax :
#
#   Test if Key is Triggered :
#    - if Keyboard.trigger?(Keyboard::<Keyboard_constant>)
#
#   Test if Key is Pressed :
#    - if Keyboard.pressed?(Keyboard::<Keyboard_constant>)
#==============================================================================

#MACL::Loaded << 'Modules.Keyboard Module'
  
#==============================================================================
# ** Keyboard
#==============================================================================

module Keyboard
  #--------------------------------------------------------------------------
  # * Constants (These Are Your Keyboard Keys)
  #--------------------------------------------------------------------------
  Mouse_Left      = 1; Mouse_Right     = 2
  Back            = 8; Tab             = 9
  Enter           = 13; Shift           = 16
  Ctrl            = 17; Alt             = 18
  Capslock        = 20; Esc             = 27
  Space           = 32; End             = 35
  Home            = 36; Left            = 37
  Right           = 39
  Del             = 46; Collon          = 186
  Equal           = 187; Comma           = 188
  Underscore      = 189; Dot             = 190
  Backslash       = 191; Tilde           = 192
  Lb              = 219; Rb              = 221
  Forwardslash    = 220; Quote           = 222
  Numberkeys      = {}; Numberkeys[0]   = 48
  Numberkeys[1]   = 49; Numberkeys[2]   = 50
  Numberkeys[3]   = 51; Numberkeys[4]   = 52
  Numberkeys[5]   = 53; Numberkeys[6]   = 54
  Numberkeys[7]   = 55; Numberkeys[8]   = 56
  Numberkeys[9]   = 57
  Numberpad       = {}; Numberpad[0]    = 45
  Numberpad[1]    = 35; Numberpad[2]    = 40
  Numberpad[3]    = 34; Numberpad[4]    = 37
  Numberpad[5]    = 12; Numberpad[6]    = 39
  Numberpad[7]    = 36; Numberpad[8]    = 38
  Numberpad[9]    = 33
  Numpad = {}    ; Numpad[0] = 96
  Numpad[1] = 97    ; Numpad[2] = 98
  Numpad[3] = 99    ; Numpad[4] = 100
  Numpad[5] = 101; Numpad[6] = 102
  Numpad[7] = 103; Numpad[8] = 104
  Numpad[9] = 105
  Letters         = {}; Letters['A']    = 65
  Letters['B']    = 66; Letters['C']    = 67
  Letters['D']    = 68; Letters['E']    = 69
  Letters['F']    = 70; Letters['G']    = 71
  Letters['H']    = 72; Letters['I']    = 73
  Letters['J']    = 74; Letters['K']    = 75
  Letters['L']    = 76; Letters['M']    = 77
  Letters['N']    = 78; Letters['O']    = 79
  Letters['P']    = 80; Letters['Q']    = 81
  Letters['R']    = 82; Letters['S']    = 83
  Letters['T']    = 84; Letters['U']    = 85
  Letters['V']    = 86; Letters['W']    = 87
  Letters['X']    = 88; Letters['Y']    = 89
  Letters['Z']    = 90
  Fkeys           = {}; Fkeys[1]        = 112
  Fkeys[2]        = 113; Fkeys[3]        = 114
  Fkeys[4]        = 115; Fkeys[5]        = 116
  Fkeys[6]        = 117; Fkeys[7]        = 118
  Fkeys[8]        = 119; Fkeys[9]        = 120
  Fkeys[10]       = 121; Fkeys[11]       = 122
  Fkeys[12]       = 123
  #--------------------------------------------------------------------------
  # * Text Representation
  #--------------------------------------------------------------------------
  TR = {}
  TR[Tab]           = ['     ', '     ']
  TR[Enter]         = ['/n', '/n']
  TR[Collon]        = [';', ':']
  TR[Equal]         = ['=', '+']
  TR[Comma]         = [',', '<']
  TR[underscore]    = ['-', '_']
  TR[Dot]           = ['.', '>']
  TR[backslash]     = ['/', '?']
  TR[Tilde]         = ['`', '~']
  TR[Forwardslash]  = ["\\", "|"]
  TR[Quote]         = ["'", '"']
  TR[Numberkeys[0]] = ['0', ')']
  TR[Numberkeys[1]] = ['1', '!']
  TR[Numberkeys[2]] = ['2', '@']
  TR[Numberkeys[3]] = ['3', '#']
  TR[Numberkeys[4]] = ['4', '$' ]
  TR[Numberkeys[5]] = ['5', '^%']
  TR[Numberkeys[6]] = ['6', '^']
  TR[Numberkeys[7]] = ['7', '&']
  TR[Numberkeys[8]] = ['8', '*']
  TR[Numberkeys[9]] = ['9', '(']
  Letters.values.each do |key|
    TR[key] = [key.chr.downcase, key.chr.upcase]
  end
  #--------------------------------------------------------------------------
  # * API Declaration
  #--------------------------------------------------------------------------
  State   = Win32API.new('user32','GetKeyState',      ['i'],'i')
  Key     = Win32API.new('user32','GetAsyncKeyState', ['i'],'i')
  #--------------------------------------------------------------------------
  # * Clear Key & Pressed
  #--------------------------------------------------------------------------
  @keys = []; @pressed = []; @lock = []
  @disabled_keys = []; @disabled_timer = {}
  @delay = {}; @disabled_tr = []; @text_window = nil; @text_max = 10
  #--------------------------------------------------------------------------
  # * Get Key State (Test Pressed)
  #--------------------------------------------------------------------------
  def self.getstate(key)
    return !State.call(key).between?(0, 1)
  end
  #--------------------------------------------------------------------------
  # * Test Key (Test Trigger)
  #--------------------------------------------------------------------------
  def self.testkey(key)
    return Key.call(key) & 0x01 == 1
  end
  #--------------------------------------------------------------------------
  # * Test Lock (Test Trigger)
  #--------------------------------------------------------------------------
  def self.testlock(key)
    return State.call(key) & 0x01 == 1
  end
  #--------------------------------------------------------------------------
  # * Trigger? Test
  #--------------------------------------------------------------------------
  def self.trigger?(key)
    return @keys.include?(key)
  end
  #--------------------------------------------------------------------------
  # * Pressed? Test
  #--------------------------------------------------------------------------
  def self.pressed?(key)
    return @pressed.include?(key)
  end
  #--------------------------------------------------------------------------
  def self.lock?(key)
    return @lock.include?(key)
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def self.update
    # Clears Keys & Pressed
    @keys, @pressed, @lock = [], [], []
    # Pass Through Timer List
    @disabled_timer.each do |key, timer|
      # Next if nil timer or key not-disabled
      next if timer.nil? || !@disabled_keys.include?(key)
      # If Greater than 0 Timer
      if timer > 0
        timer -= 1
        next
      end
      # Enable Key
      @disabled_keys.delete(key) if @disabled_keys.include?(key)
      # Set Timer to Nil
      @disabled_timer[key] = nil
    end
    # Test All Keys
    for key in [Mouse_Left, Mouse_Right, Back, Tab, Enter, Shift, Ctrl, Alt,
                Capslock, Esc, Space, End, Home, Left, Right, Del, Collon, 
                Equal, Comma, Underscore, Dot, Backslash, Tilde, Lb, Rb, 
                Forwardslash, Quote] + Numberkeys.values + Numberpad.values +
                Numpad.values + Letters.values + Fkeys.values
      # Skip If Key Disabled
      next if @disabled_keys.include?(key)
      # Add Key to Triggered Array if Triggered
      @keys.push(key)    if self.testkey(key)
      # Add Key to Pressed Array if Pressed
      @pressed.push(key) if self.getstate(key)
    end
    # Add Lock Key If Capslock
    @lock.push(Keyboard::Capslock) if Keyboard.testlock(Keyboard::Capslock)
    # Update Text Window Text If Text Window Present
    self.update_text if @text_window != nil && @text_window.active
  end
  #--------------------------------------------------------------------------
  # * Update Text
  #--------------------------------------------------------------------------
  def self.update_text
    # Return if Nil Text Window
    return if @text_window.nil?
    # Gets Text Window Text
    text = @text_window.text.dup
    # Backspace Pressed
    text = text.chop if self.trigger?(Back)
    # If Text Size is Less Than Text Max
    if text.size < @text_max
      # Pass Through Triggered Array
      (@keys + @pressed).each do |key|
        # If TR has Key
        if TR.has_key?(key)
          # If Delay Has Key
          if @delay.has_key?(key)
            # Subtract Delay Count and Return (if greater than 0)
            if @delay[key] > 0
              @delay[key] -= 1
              next
            end
          end
          # Skip if TR Key Disabled
          next if @disabled_tr.include?(key)
          # If Shiftcase
          if ( self.lock?(Capslock) && !self.pressed?(Shift)) || 
             (!self.lock?(Capslock) &&  self.pressed?(Shift))
            text += TR[key][1] unless key==Enter
          # If Regular Case
          else
            text += TR[key][0] unless key==Enter
          end
          # Start Delay Count
          @delay[key] = 6
        end
      end
    end
    # Sets Text Window Text
    @text_window.text = text
  end
  #--------------------------------------------------------------------------
  # * Read Disabled TR
  #--------------------------------------------------------------------------
  def self.disabled_tr
    return disabled_tr
  end
  #--------------------------------------------------------------------------
  # * Set Disabled TR
  #--------------------------------------------------------------------------
  def self.disabled_tr=(disabled_tr)
    @disabled_tr = disabled_tr
  end
  #--------------------------------------------------------------------------
  # * Read Text Window
  #--------------------------------------------------------------------------
  def self.text_window
    return @text_window
  end
  #--------------------------------------------------------------------------
  # * Set Text Window
  #--------------------------------------------------------------------------
  def self.text_window=(text_window)
    @text_window = text_window
  end
  #--------------------------------------------------------------------------
  # * Read Text Max
  #--------------------------------------------------------------------------
  def self.text_max
    return text_max
  end
  #--------------------------------------------------------------------------
  # * Set Text Max
  #--------------------------------------------------------------------------
  def self.text_max=(text_max)
    @text_max = text_max
  end
  #------------------------------------------------------------------------
  # * Disable Key
  #------------------------------------------------------------------------
  def self.disable_key(constant, frames = nil)
    # Add Key to Disabled List
    @disabled_keys << constant unless @disabled_keys.include?(constant)
    # Set Disabled Counter if non-nil
    @disabled_timer[constant] = frames unless frames.nil?
  end
  #------------------------------------------------------------------------
  # * Enable Key
  #------------------------------------------------------------------------
  def self.enable_key(constant)
    # Remove Constant From List
    @disabled_keys.delete(constant)
    # Set Nil Timer
    @disabled_timer[constant] = nil
  end
end

#==============================================================================
# ** Input
#==============================================================================

module Input
  class << self
    #------------------------------------------------------------------------
    # * Alias Listings
    #------------------------------------------------------------------------
    unless self.method_defined?(:seph_keyboard_input_update)
      alias_method :seph_keyboard_input_update,   :update
    end
    #------------------------------------------------------------------------
    # * Frame Update
    #------------------------------------------------------------------------
    def update
      # Original Update
      seph_keyboard_input_update
      # Update Keyboard
      Keyboard.update
    end
  end
end

Riga

  #--------------------------------------------------------------------------
  # * Update Text
  #--------------------------------------------------------------------------
  def self.update_text
    # Return if Nil Text Window
    return if @text_window.nil?
    # Gets Text Window Text
    text = @text_window.text.dup
    # Backspace Pressed
    text = text.chop if self.trigger?(Back)
    # If Text Size is Less Than Text Max
    if text.size < @text_max
      # Pass Through Triggered Array
      (@keys + @pressed).each do |key|
        # If TR has Key
        if TR.has_key?(key)
          # If Delay Has Key
          if @delay.has_key?(key)
            # Subtract Delay Count and Return (if greater than 0)
            if @delay[key] > 0
              @delay[key] -= 1
              next
            end
          end

Ora dovrò studiami la tecnica

in Tile_creator non c'è questa funzione. Quindi devo vedere come implementarla.

......

Cospladya 2011

La mia Lightning:

 

http://img69.imageshack.us/img69/4672/43078798.png

 

........

Nissa comix 2011vincitori come miglior gruppo:

http://img521.imageshack.us/img521/668/migliorgrupponissacomix.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...