سورس بازی GridLocked در اندروید
چهارشنبه 10 خرداد 1396در این بازی ما قصد داریم یک بازی را برای شما قرار دهیم این بازی یک سری اشکال دارد که کنار هم هستند و شما با قرار دادن رنگ های مثل هم در کنار هم برنده بازی خواهید شد فقط با گرفتن سطر و ستون می توانید اشکال را بالا و پایین ببرید.
ابتدا 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"; }
خروجی به صورت زیر خواهد بود:
- Android
- 1k بازدید
- 1 تشکر