سورس بازی GridLocked در اندروید

چهارشنبه 10 خرداد 1396

در این بازی ما قصد داریم یک بازی را برای شما قرار دهیم این بازی یک سری اشکال دارد که کنار هم هستند و شما با قرار دادن رنگ های مثل هم در کنار هم برنده بازی خواهید شد فقط با گرفتن سطر و ستون می توانید اشکال را بالا و پایین ببرید.

سورس بازی GridLocked در اندروید

ابتدا layout باید قطعه کد زیر را قرار دهید:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView android:layout_height="wrap_content" android:text="@string/hello" android:layout_width="wrap_content" android:layout_gravity="center_horizontal"/><LinearLayout android:id="@+id/LinearLayout01" android:layout_height="wrap_content" android:baselineAligned="false" android:gravity="fill_horizontal" android:background="#104080" android:layout_width="fill_parent"><Button android:layout_y="57dip" android:layout_x="120dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ButtonReset" android:text="@string/ResetButton" android:clickable="true" android:height="5sp" android:layout_gravity="left|center_vertical" android:minHeight="10sp" android:maxHeight="10sp"></Button><TextView android:id="@+id/TextScore" android:minLines="1" android:maxLines="1" android:lines="1" android:digits="0123456789" android:typeface="monospace" android:inputType="number" android:textScaleX="1." android:textColor="#FFA0A0" android:shadowDx="1.2" android:shadowDy="1.2" android:shadowRadius="0.5" android:textStyle="bold" android:clickable="false" android:padding="1sp" android:text="000000" android:maxLength="10" android:textSize="38sp" android:shadowColor="#000000" android:layout_gravity="right" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="right|fill_vertical"></TextView></LinearLayout><AbsoluteLayout android:id="@+id/RenderView" android:layout_height="wrap_content" android:layout_width="fill_parent"></AbsoluteLayout>







</LinearLayout>

حالا در قسمت کلاس باید قطعه کد زیر را قرار دهید:


import android.app.Activity;
import android.util.Log;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnTouchListener;
import android.view.MotionEvent;
import android.os.Handler;
import android.os.Message;

public class GridLocked extends Activity implements OnTouchListener, Handler.Callback
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
    	Log.i( TAG,"onCreate");
        super.onCreate(savedInstanceState);
        
        m_handler = new Handler( this );
        
        m_myMain = new GridLockedMain();
        m_myGLSurfaceView = new GridLockedGLView( this, m_myMain );
        m_myMain.setUI( this );
        
        setContentView( R.layout.main );
        ViewGroup absLayout = (ViewGroup)findViewById( R.id.RenderView );
        absLayout.addView( m_myGLSurfaceView );
        
        m_resetButton = (Button)findViewById( R.id.ButtonReset );
        m_resetButton.setOnTouchListener(this);

        m_scoreText = (TextView)findViewById( R.id.TextScore );
    }
    
    @Override
    protected void onStart() 
    {
    	Log.i( TAG,"onStart");
        super.onStart();
        m_myMain.onStart();
    }
    @Override
    protected void onRestart() 
    {
    	Log.i( TAG,"onRestart");
        super.onResume();
    }
    @Override
    protected void onResume() 
    {
    	Log.i( TAG,"onResume");
        super.onResume();
        m_myGLSurfaceView.onResume();
        m_myMain.onResume();
    }

    @Override
    protected void onPause() 
    {
    	Log.i( TAG,"onPause");
        super.onPause();
        m_myGLSurfaceView.onPause();
        m_myMain.onPause();
    }
    @Override
    protected void onStop()
    {
    	Log.i( TAG,"onStop");
        super.onStop();
        m_myMain.onStop();
    }
    @Override
    protected void onDestroy()
    {
    	Log.i( TAG,"onDestroy");
        super.onDestroy();
        // Kill the thread
        m_myMain.onDestroy();
    }
    public boolean onTouch( View v, MotionEvent event )
	{
    	if ( v == m_resetButton )
    	{
    		if ( event.getAction() == MotionEvent.ACTION_UP )
    		{
    			m_myMain.resetButton();
    			return false;
    		}
    	}
    	return false;
	}
    public void setScore( int score )
    {
		m_handler.sendEmptyMessage( score );
    }
    private void updateScore( int score )
    {
		m_scoreString = String.format("%06d", score );
		m_scoreText.setText( m_scoreString );
    }
    public float getRatio()
	{
    	return m_myGLSurfaceView.getRatio();
	}
    public boolean handleMessage( Message msg )
    {
    	int newScore = msg.what;
    	if ( newScore >= 666 )
    	{
    		updateScore( newScore - 666 );
    		return true;
    	}
    	return false;
    }
    
    private GridLockedGLView 	m_myGLSurfaceView;
    private GridLockedMain		m_myMain;
    private Button				m_resetButton;
    private TextView			m_scoreText;
    private String				m_scoreString;
    private Handler				m_handler;
    
    private static final String TAG = "GL";
}

خروجی به صورت زیر خواهد بود:

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید