Autore Topic: [Facile]AndEngine 2 - RectangleExample  (Letto 2588 volte)

Zate

  • Visitatore
[Facile]AndEngine 2 - RectangleExample
« il: 22 Novembre 2011, 16:11:50 CET »
+1
Difficoltà: facile
Versione SDK utlizzata: 2.2
Link al progetto: http://www.anddev.it/index.php/topic,5210.msg31075/topicseen.html
C'è una piccola differenza rispetto all'esempio che vedete nel link, semplicemente perché ho cambiato la larghezza e l'altezza della Camera dato che è questa volta è il landscape e non volevo fare troppa confusione con troppi progetti diversi. Comunque non ci sarà nessun problema

Dopo questa piccola premessa, continuo i tutorial di AndEngine :)
Potete seguire tutorial senza aver prima seguito il primo, ma vi consiglio vivamente di guardarlo almeno un po'.

RectangleExample
Creiamo la classe RectangleExample ed estendiamo una BaseGameActivity.

Codice (Java): [Seleziona]
package com.and.engine;

import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.engine.options.EngineOptions;
import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.anddev.andengine.entity.Entity;
import org.anddev.andengine.entity.primitive.Rectangle;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.entity.scene.background.ColorBackground;
import org.anddev.andengine.ui.activity.BaseGameActivity;

public class RectangleExample extends BaseGameActivity {
 
        private static final int CAMERA_WIDTH = 480;
        private static final int CAMERA_HEIGHT = 320;

        private Camera mCamera;

        @Override
        public void onLoadComplete() {
                // TODO Auto-generated method stub

        }

        @Override
        public Engine onLoadEngine() {
                // TODO Auto-generated method stub
        //parametri della Camera
                this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
                //parametri di EngineOptions
                EngineOptions eo = new EngineOptions(true, ScreenOrientation.LANDSCAPE,
                                new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
                                this.mCamera);
                //Si ritorna l'Engine che ha come parametro eo (EngineOptions)
                return new Engine(eo);
        }

        @Override
        public void onLoadResources() {
                // TODO Auto-generated method stub

        }

        @Override
        public Scene onLoadScene() {
                // TODO Auto-generated method stub
        final Scene scene = new Scene();
        scene.setBackground(new ColorBackground(0, 0, 0));

       

        //parametri dei rettangoli creati poi in makeColoredRectangle
        //coordinata x della posizione dell'angolo superiore a sinistra, coordinata y della posizione dell'angolo superiore a sinistra, R, G, B
        final Rectangle rect1 = this.makeColoredRectangle(-180, -180, 1, 0, 0);
        //idem
        final Rectangle rect2 = this.makeColoredRectangle(0, -180, 0, 1, 0);
        //idem
        final Rectangle rect3 = this.makeColoredRectangle(0, 0, 0, 0, 1);
        //idem
        final Rectangle rect4 = this.makeColoredRectangle(-180, 0, 1, 1, 0);
        //Si crea un'Entity
        final Entity rectangleGroup = new Entity(CAMERA_WIDTH/2, CAMERA_HEIGHT/2);
        //Si attaccano i rettangoli all'Entity
        rectangleGroup.attachChild(rect1);
        rectangleGroup.attachChild(rect2);
        rectangleGroup.attachChild(rect3);
        rectangleGroup.attachChild(rect4);
       
        //Si attacca l'Entity alla Scene
        scene.attachChild(rectangleGroup);
       
        //si ritorna la Scene
        return scene;
        }
       
        //metodo creato sopra
        private Rectangle makeColoredRectangle(final float pX, final float pY, final float pRed, final float pGreen, final float pBlue) {
        //Qui si creano i rettangoli e si setta la posizione
                final Rectangle coloredRect = new Rectangle(pX, pY, 180, 180);
                //e qui si setta il colore
        coloredRect.setColor(pRed, pGreen, pBlue);
        //e qui viene vengono ritornati
        return coloredRect;
}


}

Riassumendo: si dichiarano i parametri di 4 rettangoli e nel metodo makeColoredRectangle vengono effettivamente creati per essere poi attaccati ad una Entity che a sua volte viene attaccata alla Scene. Dunque quello che vediamo sullo schermo è una Entity, composta da quattro Rectangle.

In allegato il risultato finale.

Chiedete pure se avete bisogno di chiarimenti ;)

Testato con LG Optimus P500 con Android 2.3.5
« Ultima modifica: 24 Novembre 2011, 19:32:14 CET da Zate »