Autore Topic: Semplice problema con le classi, chiamare metodo all'interno di una classe.  (Letto 1350 volte)

Offline Aceking

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
Salve, sono un principiante, e nelle mie semplici app ho sempre trascurato l'utilizzo delle classi, ma adesso sto cercando di realizzare un videogame con libgdx e la complessità dei dati mi ha spinto ad utilizzare le classi ma mi sono imbattuto in un problema. Sto realizzando una classe per realizzare delle zanzare nel mio videogame, e ho scritto del codice nella classe che mi carica le texture, me le ridimensiona, e gestisce i moti. Adesso però ho un metodo che carica le texture che ogni volta che dichiaro e istanzio un oggetto zanzara deve essere chiamato, mentre io vorrei che venissero settate automaticamente dalla classe, ma ho un errore.

Codice (Java): [Seleziona]
public class zanzara {
        private Animation zanzaravola;
        private Texture zan1,zan2,zan3,zan4,zan5,zan6,zan7,zan8,zan9,zan10,zan011;
        private TextureRegion zan11,zan22,zan33,zan44,zan55,zan66,zan77,zan88,zan99,zan100,zan111;
        private float stateTime=0;
        //COORDINATE
        public float corx,cory,coryoriginale,raggio;
        public float velangolare=Math.round((float)Math.random() * 9)+1;
        public float visibilita=1;
        //TEMPO PER MOTO OSCILLATORIO
        public float tempo=0;
        //SETTA LA POSIZIONE DELLA ZANZARA
        public void setpos(int n,int d){
                this.corx=n;
                this.cory=d;
                this.coryoriginale=this.cory;
                //this.raggio=Math.round((float)Math.random() * (200-Math.abs(this.coryoriginale)))+1;
                this.raggio=200-Math.abs(this.coryoriginale-71);
        }
        public void settatexture(){
                this.zan1 = new Texture(Gdx.files.internal("zanzara/1.png"));
                this.zan1.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan11 = new TextureRegion(zan1, 0, 0, 148,142);
                this.zan2 = new Texture(Gdx.files.internal("zanzara/2.png"));
                this.zan2.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan22 = new TextureRegion(zan2, 0, 0, 148,142);
                this.zan3 = new Texture(Gdx.files.internal("zanzara/3.png"));
                this.zan3.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan33 = new TextureRegion(zan3, 0, 0, 148,142);
                this.zan4 = new Texture(Gdx.files.internal("zanzara/4.png"));
                this.zan4.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan44 = new TextureRegion(zan4, 0, 0, 148,142);
                this.zan5 = new Texture(Gdx.files.internal("zanzara/5.png"));
                this.zan5.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan55 = new TextureRegion(zan5, 0, 0, 148,142);
                this.zan6 = new Texture(Gdx.files.internal("zanzara/6.png"));
                this.zan6.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan66 = new TextureRegion(zan6, 0, 0, 148,142);
                this.zan7 = new Texture(Gdx.files.internal("zanzara/7.png"));
                this.zan7.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan77 = new TextureRegion(zan7, 0, 0, 148,142);
                this.zan8 = new Texture(Gdx.files.internal("zanzara/8.png"));
                this.zan8.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan88 = new TextureRegion(zan8, 0, 0,148,142);
                this.zan9 = new Texture(Gdx.files.internal("zanzara/9.png"));
                this.zan9.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan99 = new TextureRegion(zan9, 0, 0, 148,142);
                this.zan10 = new Texture(Gdx.files.internal("zanzara/10.png"));
                this.zan10.setFilter(TextureFilter.Linear, TextureFilter.Linear);
                this.zan100 = new TextureRegion(zan10, 0, 0, 148,142);
                this.zanzaravola=new Animation(0.01f,zan11,zan22,zan33,zan44,zan55,zan66,zan77,zan88,zan99,zan100,zan99,zan88,zan77,zan66,zan55,zan44,zan33,zan22);
        }
        public TextureRegion getFrame(){
                return this.zanzaravola.getKeyFrame(this.stateTime, true);
        }
        public int getvisibilita(){
                return (int)this.visibilita;
        }
        public float getx(){
                return this.corx;
        }
        public float gety(){
                return this.cory;
        }
        public void nascondi(){
                this.visibilita=0;
        }// ECLIPSE MI SOTTOLINEA IN ROSSO QUESTA PARENTESI E MI SCRIVE Syntax error on token "}", { expected after this token
        this.settatexture();
}// ECLIPSE MI SOTTOLINEA IN ROSSO QUESTA PARENTESI E MI SCRIVE Syntax error on token "}", { expected after this token

Perchè mi da errore? Ho scritto il tipo di errore come commento nell'ultima parte del codice. Ahahaha scusate l'ignoranza, sicuramente sarà una domanda banalissima ma sono un principiante  :-P

Offline cioppy

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +3
    • giancarlo985
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S Plus
  • Play Store ID:
    Team Android
  • Sistema operativo:
    Linux Mint 12 - 64bit
Re:Semplice problema con le classi, chiamare metodo all'interno di una classe.
« Risposta #1 il: 21 Ottobre 2012, 11:29:29 CEST »
+1
Ciao.
Il problema è dato dal fatto che tu cerchi di invocare il metodo
Codice (Java): [Seleziona]
 this.settatexture(); .

NB: Puoi invocare il metodo di una classe o all'interno di un altro metodo della stessa classe, oppure puoi creare all'esterno della classe (in un altra classe) un oggetto della classe di partenza ed invocare il metodo settatexture() su quell'oggetto.

In ogni caso ti consiglio di cercare un buon manuale di Java e in generale della programmazione ad oggetti.

Offline Aceking

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
Re:Semplice problema con le classi, chiamare metodo all'interno di una classe.
« Risposta #2 il: 21 Ottobre 2012, 11:48:26 CEST »
0
Grazie mille sei stato super chiaro! Io sto leggendo "Java mattone dopo mattone" e in particolare per capire bene le classi sto leggendo questo pdf qui:

http://www.dii.unisi.it/~rigutini/teaching/LaboratorioJava/2.%20Classi%20ed%20Oggetti%20in%20JAVA.pdf

Quali altri libri mi consiglieresti?  :-)

Offline cioppy

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +3
    • giancarlo985
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S Plus
  • Play Store ID:
    Team Android
  • Sistema operativo:
    Linux Mint 12 - 64bit
Re:Semplice problema con le classi, chiamare metodo all'interno di una classe.
« Risposta #3 il: 21 Ottobre 2012, 12:12:50 CEST »
0
Io ho studiato dal deitel&deitel How to Program, ma online se cerchi trovi parecchio materiale. Prima di inziare con Java, cerca di studiare bene la programmazione ad oggetti, che è la base per poi iniziare con java. :-)