package com.hypermotion2d;

import android.content.Context;
import android.opengl.GLSurfaceView;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import com.roxiga.hypermotion2d.*;

public class HyperMotion2D implements GLSurfaceView.Renderer
{
	//ReNXg
	private Context _context;
	//ʕ
	public int _width;
	//ʍ
	public int _height;
	//ʂ^b`H
	public boolean _touch;
	//@L̃̕TCY
	private static final int HALF_XY_SIZE = 256/2;
	//AL̃CX^X
	private Sprite2D[] _img = new Sprite2D[2]; 

	//@Override
	//RXgN^
	public HyperMotion2D(Context context)
	{
	    _context = context;
	}

	//@Override
	//`ł悤ɖt[Ăяo֐
	public void onDrawFrame(GL10 gl)
	{
	    // `pobt@NA
	    gl.glClear(GL10.GL_COLOR_BUFFER_BIT
	    		| GL10.GL_DEPTH_BUFFER_BIT);
	    
	    for ( int i = 0; i < _img.length; i++ )
	    {
	    	_img[i].draw(gl);
	    }
	}
	
	//@Override
	//T[tFCX̃TCYύXɌĂ΂
	public void onSurfaceChanged(
			GL10 gl, int width, int height)
	{
	}

	//@Override
	//T[tFCXہE܂͍ĐۂɌĂ΂
	public void onSurfaceCreated(
			 GL10 gl, EGLConfig config)
	{
		//wiF
	   	gl.glClearColor(0.6f,0.8f,1.0f,1.0f);
	    // fBU𖳌
	    gl.glDisable(GL10.GL_DITHER);
	    // [xeXgL
	    gl.glEnable(GL10.GL_DEPTH_TEST);
	 	//eNX`@\ON
	  	gl.glEnable(GL10.GL_TEXTURE_2D);
	    //\
	  	gl.glEnable(GL10.GL_ALPHA_TEST);
	   	//uh\
	   	gl.glEnable(GL10.GL_BLEND);
	  	//F̃uh@
	  	gl.glBlendFunc(GL10.GL_SRC_ALPHA,
			GL10.GL_ONE_MINUS_SRC_ALPHA);
        //BeNX`ǂݍ	  	
  		_img[0] = new Sprite2D();
  		_img[0].setTexture(gl,_context.getResources(),R.drawable.img);  	
    	_img[0]._pos._x = 200;
  		_img[0]._pos._y = 200;
		_img[1] = new Sprite2D();
  		_img[1].setTexture(gl,_context.getResources(),R.drawable.guitar);  	
	}
	
	public void actionDown(float x,float y)
	{
	}
	
	public void actionMove(float x,float y)
	{
		//ChbOĂƂ蔻
		_img[1]._pos._x = x - HALF_XY_SIZE;
		_img[1]._pos._y = _height - y - HALF_XY_SIZE;
		
		float x2 = _img[1]._pos._x - _img[0]._pos._x;
		float y2 = _img[1]._pos._y - _img[0]._pos._y;
		if ( x2*x2 + y2*y2 < 100*100 )
		{
			_img[0]._pos._x += x2/2;
			_img[0]._pos._y -= y2/2;
		}
	}

	public void actionUp(float x,float y)
	{
	}
}
