Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

  • Chatbox

    You don't have permission to chat.
    Load More
Thejuster

JS La base del Javascript (Introduzione)

Recommended Posts

Siccome siamo in tema per il nuovo tool in arrivo, 

Volevo dare alcune informazioni proprio basilari riguardanti il linguaggio javascript.

 

Pariliamo dunque del javascript.
 
Cos'è Il javascript? e come nasce?
 
Il Javascript è un linguaggio principalmente nato per il web.
Molti giochi cross-platform sul web, cellulari, etc. sfruttano questo linguaggio
per questo motivo.
 
Essendo un linguaggio web based, con una buona programmazione ed un emulazione web
si è possibile far girare il gioco ovunque gli pare al programmatore.
 
Il Javascript dunque nasce come linguaggio web assieme ad altri famosi linguaggi 
di programmazione come ad esempio il vecchio Ruby on Rails. il php l'html etc.
 
Ma domandatevi per due secondi.
 
Perché il php, javascript, etc sono linguaggi molto più famosi rispetto agl'altri?
 
Ed ecco qui che entra in gioco il mio discroso.
 
Tutti i linguaggi C-LIKE sono maggiormente presi in considerazione dai programmatori.
per via della loro somiglianza ai linguaggi di programmazione maggiormente usati
come C,C++,C#,Java,PHP,Javascript Etc.
 
Tutti questi linguaggi vengono definiti C-Like.
fatto questo, sto a dire che se impari uno di quei linguaggi,
automaticamente conosci le basi avanzati anche degli altri linguaggi.
 
 
faccio un semplice esempio di come istanziare una classe nei vari linguaggi C-LIKE
 
Classe $classe = new Classe();  //PHP
var classe = Classe(); //Javascript
Classe classe = new Classe(); //C#
Classe classe = new Classe(); //Java
Classe *classe = new Classe(); //C++ - C
Questo è quello che intendevo dirvi.
I metodi nell'esempio sono quasi tutti uguali.
Ma ovviamente ogni linguaggio ha sempre un qualcosa di differente dagli altri
ma il modo di scrivere non cambia.
 
 
Il javascript ha qualcosa di diverso nel quadro generale nell'instanziare oggetti
 
Un oggetto potrebbe essere un tipo strutturato di un qualsiasi elemento.
 
Ora sto andando giù un pò con paroloni ed esempi difficili.
Ma spero che riuscite a capire quello che voglio dirvi.
 
 
Un tipo può essere:
 
int
float
duble
string
decimal
ecc.
 
un tipo strutturato può essere
 
Vector2(X,Y);
Rectangle(x,y,w,h);
 
 
Mentre negli altri linguaggi ereditare un tipo 
basta fare semplicemente
 
 
Rectangle  rettangolo = new Rectangle(); //C-LIKE
 
 
 
In Javascript la cosa cambia
 
var rettangolo : Rectangle();
rettangolo(X,Y,W,H);

 

Strutturato esempio Vector2 in C#

//By Thejuster DirectX Vector2
//Cartesian Vector on Map Coords X and Y

struct Vector2
{

 private float _x;
 private float _y;
 
 public Vector2(float x,float y)
 {
   _x = x; _y = y;
 }

 public float X
 {
   get { return _x; }
 } 

 public float Y
 {
   get { return _y; }
 } 

}

da questo punto in poi tipo Vector2 può essere ereditato come mostrato prima da javascript

 

 

Altra differenza, il javascript funge come OOP simile al PHP

per questo non esistono void, ma essendo un linguaggio orientato al web come il PHP esistono le funzioni

//Javascript calc Example by Thejuster

var tot = Calc(2,2);  // Totale 4



function Calc(n1,n2)
{

 return n1 + n2;

}

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Fantastico Justino! Era quello che mi serviva 

 

Non è che potresti fare diversi video Tutorial sul linguaggio, e dare dei esercizi vari sul Forum per fare pratica :)?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Appena riesco a mettere internet a casa vedo di fare qualcosa!

 

Cmq da quel che ho visto, Realizzare script per Rpgmaker VM in Javascript è veramente una cavolata.

Se lo avrei ora a portata di mano, vi riuscirei a spiegare ogni script quello che fà. e su cosa agisce.

 

Sicuramente scriverò dei tutorial su Makerando state tranquilli XD

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

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

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da KenzaMe92
      KZM - MV Engine Core
       
      Descrizione

      Il plugin permette di impostare il titolo del gioco, dimensione, colore, allineamento dello stesso, se usare il corsivo o meno, versione del gioco e cura su Level UP

      Autore

      KenzaMe92

      Allegati



      Istruzioni per l'uso

      Plugin Plug 'n Play che non necessita di istruzioni

      Script

      Guarda o scarica

      Bugs e Conflitti Noti

      N/A

      Altri dettagli

      Sarà necessario per i miei futuri plugin
    • Da kaine
      Vorreste continuare ad utilizzare i tileset che avete accumulato negli anni sul vx ace/XP/2k pure sul nuovo tool?
      Si? Sono spiacente ragazzi ma il nuovo tool utilizza tileset ancora più grandi dei precedenti.
      Perciò agganciatevi.  
      ...
      Oh!
       
      Ok ferma tutto! Come non detto ragazzi!
      Invece si può! ma dovete cestinare metà del tool, almeno la parte che riguarda il mapping.
      Perché per mappare dovete utilizzare un tool esterno chiamato TileD che potete scaricare da questo sito: http://www.mapeditor.org/
      In sostanza questo map editor è molto simile a quello utilizzato da rpg maker, ma è molto più potente, perché non ha le restrizioni che contiene rpg maker.(Ps: è talmente simile che potete impostarlo in modo che sembri proprio l'editor di rpgmaker XD)
      Infatti non ci sono restrizioni nelle dimensioni dei tileset, e nel numero che potete utilizzarne in una singola mappa, stesso dicasi per i layer pure quelli non hanno restrizioni.
      Bene ora che vi ho spiegato che è TileD sommariamente, passiamo direttamente al come le mappe che andremo a creare con questo tool, possano funzionare su Rpg Maker MV.
       
      Per far si che queste mappe vengano lette da Rpgmaker MV dovete utilizzare questo plugin:
      Vi linko il topic inglese, non sapendo se è possibile postare direttamente il plugin altrove, meglio mettere le mani avanti.
      http://forums.rpgmakerweb.com/index.php?/topic/50752-tiled-plugin/
       
      Come funziona?
      Come prima cosa create una cartella chiamata maps nella directory principale del vostro progetto.
      Dopodiché create una mappa su TileD con queste impostazioni  CSV e Orthogonal, subito dopo
      scegliete la grandezza dei Tile che andrete ad utilizzare.

        nota: La grandezza del tile sarà la griglia di movimento in game.(quindi se impostate 32X32 le collisioni saranno come sul vx, se utilizzate 16x16 come sulla serie 2k ecc ecc.
      Questo non vi vieta di utilizzare tile più piccoli con risorse più grandi.
      Es: un tile del vx ace se impostate 16X16 non verrà rimpicciolito ma diviso in 4 tile da 16 pixel

      nota2: I tileset che utilizzerete, andranno inseriti nella cartella img/tilesets del vostro progetto.
       
      Esportate la mappa appena creata con estensione JSON nella cartella maps creata precedentemente, ed assicuratevi che il nome sia mapID.json, dove l'id equivale a quello della mappa in rpgmaker.
      nota3: Se l'id della mappa in rpgmaker è 001 quando andate a salvare la mappa non dovete inserire gli zeri, quindi il nome sarà map1.json
      Vedi rettangolino nero:

       
       
      Poiché utilizzeremo un editor esterno non potremo posizionare gli eventi come facciamo di solito.
      Qui entra in gioco il plugin, per posizionare un evento in un punto preciso della mappa dovremo ricavarci le coordinate di quel punto su TileD, posizionandoci su di esso col mouse in modo che in basso a sinistra vengano visualizzate.
      Vedi rettangolino rosso:

      Una volta ottenute le coordinate su rpgmaker creiamo l'evento desiderato ed al suo interno inseriamo un commento con su scritto <position: X, Y> dove x e y sono i valori ottenuti precedentemente. Quando andremo ad avviare il gioco in automatico l'evento si troverà alle coordinate designate, come se l'avessimo posizionato li normalmente(quindi non vedrete pg che schizzano da una parte all'altra della mappa per riposizionarsi, sarà una cosa istantanea).
       
      Adesso abbiamo mappato il nostro terreno e vogliamo creare un edificio quindi vogliamo che il pg ci vada contro sbang! (ci sbatta sopra e non possa continuare a camminare).
      Come prima cosa create un nuovo livello, avete due opzioni o andate su livello in alto sulla sinistra oppure premete l'iconcina evidenziata dal rettangolino rosso presente al di sotto della lista dei livelli a quel punto vedrete le opzioni per aggiungere un livello( livello di tile,livello di oggetti,livello immagine)

      Una volta creato il livello andate sulle proprietà del Layer che utilizzate per gli edifici(nell'esempio sotto livello tile2).

       
      Aggiungete una nuova proprietà e chiamatela collision e gli assegnate il valore true.
      D'ora in avanti qualsiasi tile che non è vuoto in questo livello avrà questa proprietà, che sarebbe l'equivalente di X nei tile di rpgmaker.


      I layer calpestabili non hanno bisogno di proprietà.
      I layer al di sopra dell'eroe(l'equivalente della stellina per i tile in rpgmaker) avranno come proprietà layer con valore upper.(stesso metodo mostrato su)
       
      Per inserire una regione, nel layer che utilizzerete a tale scopo create una proprietà e chiamatela regionid con valore uguale all'id della regione che volete utilizzare.
      D'ora in poi ogni tile che non è vuoto farà parte della regione con l'id assegnato in precedenza.
      nota4: è possibile nascondere il layer della regione se volete(non ho provato, ma sicuramente la spunta visibile nelle proprietà serve a quello XD)
       
      Se dovete utilizzare un immagine create un layer immagine ed inseritela nella cartella img/parallaxes.
       
      Se volete utilizzare un panorama create un layer immagine ed inserite come proprietà parallax
      con valore true.
      Se volete che il vostro panorama si muova create due nuove proprietà chiamate planeX e planeY i cui valori saranno la direzione del movimento/velocità.
       
      Se volete che che un tile sia passabile solo in una determinata/e direzione/i create nel livello in questione una o più proprietà chiamate arrowImpassable che possono avere questi valori in base alla direzione in cui volete che il pg non passi up,down,right,left.
      nota5: A questo punto tutti i tile in questo layer avranno questa/e proprietà, quindi vi consiglio di creare un layer appositamente per i tile che utilizzano queste proprietà(tanto sono infiniti ^^).
      nota6: Nonostante TileD abbia un editor per le animazioni per il momento non è ancora supportato dal plugin, quindi dovrete ingegnarvi in qualche modo, ho letto di panorami in movimento nel topic inglese.
      Altra cosa, se capite come fare un autotile su TileD fate un fischio che lo aggiungo al topic ^^
       
       
      nota7: Ricordate bene che con questo plugin qualsiasi mappa mappata(LOL) con rpgmaker vi darà errore.
      nota8: Se dovreste avere dei problemi di passabilità del charset es una colonna che vista dal davanti copre la parte alta del charset, vi basta agiungere un ! davanti al nome del charset per risolvere
    • Da TecnoNinja
      @@Thejuster, solo tu puoi aiutarmi direttamente. ti prego fa qualcosa! xD
       
      Come ben sapete, sto spostando gli eventi del progetto sul nuovo RpgMkr MV, dove gli script del ace non sono più compatibili.
      Bene, fin qui ci siamo. Quello che non sapete è che sul ace io avevo uno script fatto da Mik89 per me, che mi permetteva di disabilitare il menù standard e far si che con la pressione del tasto ESC (e sue varianti come INS etc) si potesse far partire un evento comune che apriva il mio menù ad eventi tramite una switch da me scelta.
      Bene, mi direte: perchè non fai tutto ad eventi?
      Semplice, perchè vorrei evitare che ci sia un evento comune sempre attivo in parallelo che controlla quando il pg preme esc. Vorrei evitare lag inutile e tramite script/plugin credo che la cosa verrebbe più pulita.
       
      Qualcuno ha trovato in giro qualche plugin che faccia qualcosa di simile?
      Oppure, qualcuno (@@Thejuster) saprebbe crearmene (... @@Thejuster) uno?
       
      Grazie per l'eventuale aiuto ragazzi!
    • Da Thejuster
      Rpgmaker MV Scripting IDE
       
       
      Vi presento Rpgmaker MV Scripting IDE.
      Un programma con più di 4000 righe di codice realizzato in una settimana.
       
      Questo per arrivare prima di tutti a realizzare il primo IDE per scripting di Rpgmaker MV.
       
      Esso si presenta come un validissimo strumento per la gestione degli script di Rpgmaker MV.
      Con una colorazione perfetta di ogni termine, classe e funzione utilizzata da tutto Rpgmaker MV.
       
      Perfect Intellisense
       

       
       
      Un intellisense con tanti suggerimenti e relativo a classi / funzioni in modo estremamente semplice.
      con Autocompletion e TextIdent
       
       
      Folding Marker  per chiudere a cartella porzioni di script o di funzioni.
       
       
       

       
      Entro qualche giorno sarà disponibile il download
      Completamente Gratuito
    • Da kaine
      Qui potete trovare gli Script Call per Rpg Maker MV:
      https://docs.google.com/spreadsheets/d/1-Oa0cRGpjC8L5JO8vdMwOaYMKO75dtfKDOetnvh7OHs/edit#gid=0
×