Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.PsichiX.NighttimeAfroForce;
- import com.PsichiX.XenonCoreDroid.XeActivity;
- import com.PsichiX.XenonCoreDroid.XeApplication.*;
- import com.PsichiX.XenonCoreDroid.XeUtils.*;
- import com.PsichiX.XenonCoreDroid.XeAssets;
- import com.PsichiX.XenonCoreDroid.HighLevel.Graphics.*;
- //import com.PsichiX.XenonCoreDroid.HighLevel.Utils.*;
- import com.PsichiX.XenonCoreDroid.XePhoton;
- import android.view.MotionEvent;
- public class GameState extends State
- {
- public static float SPEED = 0.15f;
- Camera2D cam;
- Scene scn;
- float distance = 0.0f;
- public static int SCORE = 0;
- Sprite sprBg;
- Afro afro;
- Man[] mans = new Man[5];
- @Override
- public void onEnter()
- {
- final XeActivity act = getApplication().getContext();
- act.runOnUiThread(new Runnable(){public void run()
- {
- act.setTitle("LOADING...");
- }});
- scn = (Scene)getApplication().getAssets().get(R.raw.scene, Scene.class.getName());
- cam = (Camera2D)scn.getCamera();
- cam.setViewPosition(cam.getViewWidth() * 0.5f, cam.getViewHeight() * 0.5f);
- Image img = (Image)getApplication().getAssets().get(R.drawable.background, Image.class.getName());
- Material mat = (Material)getApplication().getAssets().get(R.raw.material, Material.class.getName());
- sprBg = new Sprite(mat);
- sprBg.setSize(cam.getViewWidth(), cam.getViewHeight());
- sprBg.setTextureScaleFromImageAspect(img, true);
- scn.attach(sprBg);
- for(int i = 0; i < mans.length; i++)
- {
- mans[i] = new Man(getApplication().getAssets(), cam.getViewWidth() * (float)Math.random(), cam.getViewHeight() * (((float)Math.random() * 2.0f) + 1.0f));
- mans[i].setAreaSize(cam.getViewWidth(), cam.getViewHeight());
- scn.attach(mans[i]);
- }
- afro = new Afro(getApplication().getAssets(), cam.getViewWidth() * 0.5f);
- scn.attach(afro);
- //if(txt != null && txt.length() > 0)Message.alert(getApplication().getContext(), "log", txt, "ok", null);
- }
- @Override
- public void onReload()
- {
- cam.setViewPosition(cam.getViewWidth() * 0.5f, cam.getViewHeight() * 0.5f);
- //getApplication().getTimer().reset();
- }
- @Override
- public void onUpdate()
- {
- //float dt = getApplication().getTimer().getDeltaTime() / 1000.0f;
- float dt = 1.0f / 30.0f;
- distance += dt * SPEED;
- sprBg.setTextureOffset(0.0f, distance);
- scn.update(dt);
- int f = getApplication().getTimer().getFrames();
- if(f > 0)
- return;
- final XeActivity act = getApplication().getContext();
- final int d = (int)(distance * cam.getViewHeight());
- final int s = SCORE;
- act.runOnUiThread(new Runnable(){public void run()
- {
- act.setTitle("Distance: " + d + " | Score: " + s);
- }});
- }
- @Override
- public void onInput(Touches ev)
- {
- Touch t = ev.getTriggerTouch();
- if(t != null)
- {
- Touch.State st = t.getState();
- float[] loc = cam.convertLocationScreenToWorld(t.getX(), t.getY(), -1.0f);
- if(st == Touch.State.DOWN)
- {
- for(Man m : mans)
- if(m.isCollide(loc[0], loc[1]))
- {
- m.reset();
- GameState.SCORE++;
- GameState.SPEED *= 1.02f;
- }
- }
- }
- }
- @Override
- public void onExit()
- {
- }
- public class Afro extends Sprite
- {
- private float _accel = 0.0f;
- public Afro(XeAssets a, float x)
- {
- super(null);
- Image img = (Image)a.get(R.drawable.afro, Image.class.getName());
- Material mat = (Material)a.get(R.raw.afro_material, Material.class.getName());
- setMaterial(mat);
- setSize(img.getTexture().getWidth(), img.getTexture().getHeight());
- setPosition(x, getHeight() * 0.5f);
- setOffsetFromSize(0.5f, 0.5f);
- }
- @Override
- public void update(float dt, Matrix cam)
- {
- _accel += dt * 4.0;
- if(_accel > 1.0f)
- {
- _accel = 0.0f;
- setScale(-getScaleX(), getScaleY());
- }
- super.update(dt, cam);
- }
- }
- public class Man extends Sprite
- {
- private float _accel = 0.0f;
- private float _areaWidth = 0.0f;
- private float _areaHeight = 0.0f;
- private float _range = 50.0f;
- public Man(XeAssets a, float x, float y)
- {
- super(null);
- Image img = (Image)a.get(R.drawable.man, Image.class.getName());
- Material mat = (Material)a.get(R.raw.man_material, Material.class.getName());
- setMaterial(mat);
- setSize(img.getTexture().getWidth(), img.getTexture().getHeight());
- setPosition(x, y);
- setOffsetFromSize(0.5f, 0.5f);
- }
- public void setAreaSize(float w, float h)
- {
- _areaWidth = w;
- _areaHeight = h;
- }
- public boolean isCollide(float x, float y)
- {
- float dist = MathHelper.vecLength(x - getPositionX(), y - getPositionY(), 0.0f);
- return dist < _range;
- }
- public void reset()
- {
- float x = _areaWidth * (float)Math.random();
- float y = _areaHeight + getHeight();
- setPosition(x, y);
- }
- @Override
- public void update(float dt, Matrix cam)
- {
- _accel += dt * 4.0;
- if(_accel > 1.0f)
- {
- _accel = 0.0f;
- setScale(-getScaleX(), getScaleY());
- }
- float x = getPositionX();
- float y = getPositionY() - _areaHeight * SPEED * dt;
- if(y < -getHeight())
- {
- x = _areaWidth * (float)Math.random();
- y = _areaHeight + getHeight();
- GameState.SCORE--;
- //GameState.SPEED *= 1.5f;
- }
- setPosition(x, y);
- super.update(dt, cam);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement