ciao.
Ho visto che in js esiste un modo di trattare le variabili come se fossero puntatori c (modifico una variabile e la modifica si riperquote su un altra variabile "linkata" ).
Mi ha spiegato qualcosa CarlMarx ma volevo capire bene.
ciao.
Ho visto che in js esiste un modo di trattare le variabili come se fossero puntatori c (modifico una variabile e la modifica si riperquote su un altra variabile "linkata" ).
Mi ha spiegato qualcosa CarlMarx ma volevo capire bene.
vi chiedo questo per il seguente motivo:
ho un oggetto camera e un oggetto render.
L'oggetto camera ogni volta che muovo il mouse crea una serie di matrici.
L'oggetto render ogni volta che nell' oggetto camera cambia la posizione o qualcosa dovrebbe andare a prendersi queste matrici ed applicarle(è l'oggetto che fa il draw in webgl).
l'oggetto camera è incapsulato nell oggetto render .
A questo punto nelll'oggetto camera dovrebbe esserci un riferimneto all oggetto render , per fare render.Update();
e nell oggetto render dovrebbe esserci un riferimento all' oggetto camera , per andare a prendere le matrici , tipo Camera.GetAllMatrix().
com ' è il modo migliore per fare questo in js?
perchè mi sto accorgendo che sto utilizzando js come se fosse c++ e questo non è molto corretto.
grazie
Per farlo nella maniera che hai descritto devi usare i getters e i setters. Purtroppo però è una sintassi che è diventata standard da relativamente poco tempo, fino a qualche anno fa ogni browser aveva la sua (lo so che per chi è abituato col c è una cosa assurda… ma benvenuto nel mondo di javascript e della guerra tra browsersOriginariamente inviato da giuseppe500
vi chiedo questo per il seguente motivo:
ho un oggetto camera e un oggetto render.
L'oggetto camera ogni volta che muovo il mouse crea una serie di matrici.
L'oggetto render ogni volta che nell' oggetto camera cambia la posizione o qualcosa dovrebbe andare a prendersi queste matrici ed applicarle(è l'oggetto che fa il draw in webgl).
l'oggetto camera è incapsulato nell oggetto render .
A questo punto nelll'oggetto camera dovrebbe esserci un riferimneto all oggetto render , per fare render.Update();
e nell oggetto render dovrebbe esserci un riferimento all' oggetto camera , per andare a prendere le matrici , tipo Camera.GetAllMatrix().
com ' è il modo migliore per fare questo in js?). Comunque, ecco la sintassi standard (recente):
- Object.defineProperty (è il metodo completo, consente di specificare se la chiave di un oggetto è scrivibile, enumerabile e configurabile, oltre ai getters e ai setters),
- get (consente di eseguire delle operazioni ogni qualvolta l'interprete tenta di accedere al valore della chiave di un oggetto),
- set (consente di eseguire delle operazioni ogni qualvolta l'interprete tenta di assegnare un valore a una chiave di un oggetto – è questo quello che t'interessa!).
Queste sintassi in sostanza ti consentono di generare un “evento” ogni qualvolta i valori dell'oggetto camera vengono modificati. Tuttavia il mio consiglio, vista la standardizzazione recente nei vari browsers dei getters e dei setters, è di scrivere i valori dell'oggetto camera tramite una funzione che, una volta chiamata, aggiorni anche l'oggetto render. È anche vero però che, siccome stai scrivendo un'applicazione webgl, potresti fregartene del tutto dei vecchi browsers, visto che la tua applicazione non sarebbe supportata dai vecchi browsers a prescindere dai getters e dai setters. Valuta tu.
Io credo invece che ti possa dare una marcia in più per capire in profondità cos'è javascript, a differenza dei tanti utenti che partono direttamente da qui. Tra l'altro credo che cominciare da subito a lavorare con gli oggetti sia il modo migliore per comprendere a fondo questo potentissimo linguaggio.Originariamente inviato da giuseppe500
perchè mi sto accorgendo che sto utilizzando js come se fosse c++ e questo non è molto corretto
P.S. Per curiosità… che tipo di applicazione stai scrivendo?![]()
grazie Marx,
sto scrivendo un visualizzatore webgl per sketchup, collada e ifc.
Ho un applicativo c++ che crea un xml con i vari attributi dei vertici (normali,colore , posizione ecc...)e il tipo di materiale, luci eccc... dai files di questi formati e mi crea una cartella con appunto l'xml e le textures.
Poi da js faccio il parsing dell xml(esporto in un formato semplicissimo) e visualizzo la mesh con webgl.
Per adesso è un gioco poi chissa?
ciao!
Se ti può interessare un mio amico ha scritto questo fantastico renderer 3D in javascript: http://www.nihilogic.dk/labs/canvas3dtexture_0.2/, grazie a al quale abbiamo scritto insieme questo gioco di scacchi: http://htmlchess.sourceforge.net/demo/example.html (devi cliccare su "3D view" per capire di che si tratta)… È un ottimo codice su cui smanettare… e per comprendere a pieno la potenza di javascript![]()
![]()