SHARE
TWEET

NighttimeAfroForce - game created in 3 hours on android smartphone

a guest Nov 11th, 2012 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top