Advertisement
Guest User

NighttimeAfroForce - game created in 3 hours on android smartphone

a guest
Nov 11th, 2012
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.65 KB | None | 0 0
  1. package com.PsichiX.NighttimeAfroForce;
  2.  
  3. import com.PsichiX.XenonCoreDroid.XeActivity;
  4. import com.PsichiX.XenonCoreDroid.XeApplication.*;
  5. import com.PsichiX.XenonCoreDroid.XeUtils.*;
  6. import com.PsichiX.XenonCoreDroid.XeAssets;
  7. import com.PsichiX.XenonCoreDroid.HighLevel.Graphics.*;
  8. //import com.PsichiX.XenonCoreDroid.HighLevel.Utils.*;
  9. import com.PsichiX.XenonCoreDroid.XePhoton;
  10. import android.view.MotionEvent;
  11.  
  12. public class GameState extends State
  13. {
  14.    public static float SPEED = 0.15f;
  15.    Camera2D cam;
  16.     Scene scn;
  17.     float distance = 0.0f;
  18.     public static int SCORE = 0;
  19.     Sprite sprBg;
  20.     Afro afro;
  21.     Man[] mans = new Man[5];
  22.    
  23.    @Override
  24.     public void onEnter()
  25.     {
  26.        final XeActivity act = getApplication().getContext();
  27.         act.runOnUiThread(new Runnable(){public void run()
  28.         {
  29.             act.setTitle("LOADING...");
  30.         }});
  31.          
  32.        scn = (Scene)getApplication().getAssets().get(R.raw.scene, Scene.class.getName());
  33.        cam = (Camera2D)scn.getCamera();
  34.        cam.setViewPosition(cam.getViewWidth() * 0.5f, cam.getViewHeight() * 0.5f);
  35.        
  36.        Image img = (Image)getApplication().getAssets().get(R.drawable.background, Image.class.getName());
  37.        Material mat = (Material)getApplication().getAssets().get(R.raw.material, Material.class.getName());
  38.        sprBg = new Sprite(mat);
  39.        sprBg.setSize(cam.getViewWidth(), cam.getViewHeight());
  40.        sprBg.setTextureScaleFromImageAspect(img, true);
  41.        scn.attach(sprBg);
  42.        
  43.        for(int i = 0; i < mans.length; i++)
  44.        {
  45.           mans[i] = new Man(getApplication().getAssets(), cam.getViewWidth() * (float)Math.random(), cam.getViewHeight() * (((float)Math.random() * 2.0f) + 1.0f));
  46.           mans[i].setAreaSize(cam.getViewWidth(), cam.getViewHeight());
  47.           scn.attach(mans[i]);
  48.        }
  49.        
  50.        afro = new Afro(getApplication().getAssets(), cam.getViewWidth() * 0.5f);
  51.        scn.attach(afro);
  52.        
  53.        //if(txt != null && txt.length() > 0)Message.alert(getApplication().getContext(), "log", txt, "ok", null);
  54.     }
  55.    
  56.     @Override
  57.     public void onReload()
  58.     {
  59.        cam.setViewPosition(cam.getViewWidth() * 0.5f, cam.getViewHeight() * 0.5f);
  60.        //getApplication().getTimer().reset();
  61.     }
  62.  
  63.     @Override
  64.     public void onUpdate()
  65.     {
  66.        //float dt = getApplication().getTimer().getDeltaTime() / 1000.0f;
  67.         float dt = 1.0f / 30.0f;
  68.         distance += dt * SPEED;
  69.         sprBg.setTextureOffset(0.0f, distance);
  70.        
  71.         scn.update(dt);
  72.        
  73.        
  74.        
  75.        int f = getApplication().getTimer().getFrames();
  76.        if(f > 0)
  77.           return;
  78.         final XeActivity act = getApplication().getContext();
  79.         final int d = (int)(distance * cam.getViewHeight());
  80.         final int s = SCORE;
  81.         act.runOnUiThread(new Runnable(){public void run()
  82.         {
  83.             act.setTitle("Distance: " + d + " | Score: " + s);
  84.         }});
  85.     }
  86.    
  87.     @Override
  88.     public void onInput(Touches ev)
  89.     {
  90.        Touch t = ev.getTriggerTouch();
  91.        if(t != null)
  92.        {
  93.           Touch.State st = t.getState();
  94.           float[] loc = cam.convertLocationScreenToWorld(t.getX(), t.getY(), -1.0f);
  95.           if(st == Touch.State.DOWN)
  96.           {
  97.              for(Man m : mans)
  98.                 if(m.isCollide(loc[0], loc[1]))
  99.                 {
  100.                    m.reset();
  101.                    GameState.SCORE++;
  102.                    GameState.SPEED *= 1.02f;
  103.                 }
  104.           }
  105.        }
  106.     }
  107.    
  108.     @Override
  109.     public void onExit()
  110.     {
  111.     }
  112.    
  113.     public class Afro extends Sprite
  114.     {
  115.        private float _accel = 0.0f;
  116.        
  117.        public Afro(XeAssets a, float x)
  118.        {
  119.           super(null);
  120.           Image img = (Image)a.get(R.drawable.afro, Image.class.getName());
  121.           Material mat = (Material)a.get(R.raw.afro_material, Material.class.getName());
  122.           setMaterial(mat);
  123.           setSize(img.getTexture().getWidth(), img.getTexture().getHeight());
  124.           setPosition(x, getHeight() * 0.5f);
  125.           setOffsetFromSize(0.5f, 0.5f);
  126.        }
  127.        
  128.        @Override
  129.        public void update(float dt, Matrix cam)
  130.        {
  131.           _accel += dt * 4.0;
  132.           if(_accel > 1.0f)
  133.           {
  134.              _accel = 0.0f;
  135.              setScale(-getScaleX(), getScaleY());
  136.           }
  137.          
  138.           super.update(dt, cam);
  139.        }
  140.     }
  141.    
  142.     public class Man extends Sprite
  143.     {
  144.        private float _accel = 0.0f;
  145.        private float _areaWidth = 0.0f;
  146.        private float _areaHeight = 0.0f;
  147.        private float _range = 50.0f;
  148.        
  149.        public Man(XeAssets a, float x, float y)
  150.        {
  151.           super(null);
  152.           Image img = (Image)a.get(R.drawable.man, Image.class.getName());
  153.           Material mat = (Material)a.get(R.raw.man_material, Material.class.getName());
  154.           setMaterial(mat);
  155.           setSize(img.getTexture().getWidth(), img.getTexture().getHeight());
  156.           setPosition(x, y);
  157.           setOffsetFromSize(0.5f, 0.5f);
  158.        }
  159.        
  160.        public void setAreaSize(float w, float h)
  161.        {
  162.           _areaWidth = w;
  163.           _areaHeight = h;
  164.        }
  165.        
  166.        public boolean isCollide(float x, float y)
  167.        {
  168.           float dist = MathHelper.vecLength(x - getPositionX(), y - getPositionY(), 0.0f);
  169.           return dist < _range;
  170.        }
  171.        
  172.        public void reset()
  173.        {
  174.           float x = _areaWidth * (float)Math.random();
  175.           float y = _areaHeight + getHeight();
  176.           setPosition(x, y);
  177.        }
  178.        
  179.        @Override
  180.        public void update(float dt, Matrix cam)
  181.        {
  182.           _accel += dt * 4.0;
  183.           if(_accel > 1.0f)
  184.           {
  185.              _accel = 0.0f;
  186.              setScale(-getScaleX(), getScaleY());
  187.           }
  188.           float x = getPositionX();
  189.           float y = getPositionY() - _areaHeight * SPEED * dt;
  190.           if(y < -getHeight())
  191.           {
  192.              x = _areaWidth * (float)Math.random();
  193.              y = _areaHeight + getHeight();
  194.              GameState.SCORE--;
  195.              //GameState.SPEED *= 1.5f;
  196.           }
  197.           setPosition(x, y);
  198.           super.update(dt, cam);
  199.        }
  200.     }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement