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
{
	//コンテクスト
	private Context _context;
	//画面幅
	public int _width;
	//画面高さ
	public int _height;
	//画面をタッチしたか？
	public boolean _touch;
	//①画像
	private Sprite2D[] _img = new Sprite2D[3]; 

	//@Override
	//コンストラクタ
	public HyperMotion2D(Context context)
	{
	    _context = context;
	}

	//@Override
	//描画できるように毎フレーム呼び出される関数
	public void onDrawFrame(GL10 gl)
	{
	    // 描画用バッファをクリア
	    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
	//サーフェイスのサイズ変更時に呼ばれる
	public void onSurfaceChanged(
			GL10 gl, int width, int height)
	{
	}

	//@Override
	//サーフェイスが生成される際・または再生成される際に呼ばれる
	public void onSurfaceCreated(
			 GL10 gl, EGLConfig config)
	{
		//背景色
	   	gl.glClearColor(0.6f,0.8f,1.0f,1.0f);
	    // ディザを無効化
	    gl.glDisable(GL10.GL_DITHER);
	    // 深度テストを有効に
	    gl.glEnable(GL10.GL_DEPTH_TEST);
	 	//テクスチャ機能ON
	  	gl.glEnable(GL10.GL_TEXTURE_2D);
	    //透明可能に
	  	gl.glEnable(GL10.GL_ALPHA_TEST);
	   	//ブレンド可能に
	   	gl.glEnable(GL10.GL_BLEND);
	  	//色のブレンド方法
	  	gl.glBlendFunc(GL10.GL_SRC_ALPHA,
			GL10.GL_ONE_MINUS_SRC_ALPHA);
        //③テクスチャ読み込み・位置設定
	  	for ( int i = 0; i < _img.length; i++ )
	  	{
	  		_img[i] = new Sprite2D();
	  		_img[i].setTexture(gl,_context.getResources(),
				R.drawable.img);
	  		_img[i]._pos._x = 200;
	  		_img[i]._pos._y = 256*i;
	  	}
	  	
	}
	
	public void actionDown(float x,float y)
	{
	}
	
	public void actionMove(float x,float y)
	{
	}

	public void actionUp(float x,float y)
	{
		//④画像にタッチしたか？
	  	for ( int i = 0; i < _img.length; i++ )
	  	{
	  		if ( _img[i].hit(x, _height-y) )
	  		{
	  			_img[i]._pos._x -= 5;
	  			_img[i]._pos._y -= 5;
	  			_img[i]._width += 10;
	  			_img[i]._height += 10;
	  			break;
	  		}
	  	}
	}
}
