سورس بازی Power Jeez در اندروید

یکشنبه 31 اردیبهشت 1396

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

سورس بازی Power Jeez در اندروید

این بازی دارای چند لایه هست مربوط به تنظیمات ادامه بازی و نمایش مرحله های بازی نشان داده شده است

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    
    android:background="#FFFFFF"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/level"
        android:layout_width="match_parent"
        android:layout_height="50sp"
        android:layout_gravity="center_horizontal"
        android:background="@drawable/custombutton"
        android:focusable="false"
        android:text="1"
        android:textColor="#000000"
        android:textSize="16sp" />



</LinearLayout>

این لایه ای که ما نوشتیم مربوط به لیست آیتم های مرحله ما است.

سورس دارای 9 تا کلاس هست که من کلاس مربوط به انتخاب مرحله را برای شما قرار می دهم اگر سوالی بود در قسمت انجمن بفرمایید.

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;

public class LevelChooser extends ListActivity
{
	public static int levelReached;
	MyLevelAdapter customAdapter;
	public static String levelChosen;
	public static String[] levels = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"};
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) 
	{
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.levelchooser);
	    
	    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
	    levelReached = prefs.getInt("levelReached", 1);
	    Log.d("Level Reached Chooser", Integer.toString(levelReached));
	    levelChosen = "null";
	    getListView().setDividerHeight(0);
	    getListView().setFadingEdgeLength(10);
	    customAdapter = new MyLevelAdapter(this, android.R.layout.simple_list_item_1, R.id.level, levels);
	    setListAdapter(customAdapter);
	}
	@Override
	protected void onPause()
	{
		levelChosen = "null";
		super.onPause();
	}
	@Override
	protected void onResume()
	{
		levelChosen = "null";
		new nextActivity().execute();
		super.onResume();
	}
	class nextActivity extends AsyncTask<String, Integer, String>
	{

		@Override
		protected void onPreExecute()
		{
			levelChosen = "null";
		}

		@Override
		protected String doInBackground(String... params)
		{
			while(levelChosen.equals("null"));
			return null;
		}

		@Override
		protected void onPostExecute(String result)
		{
			Intent i = new Intent(LevelChooser.this, GFX.class);
			i.putExtra("levelChosen", levelChosen);
			startActivity(i);
		}
		
	}
}

class MyLevelAdapter extends ArrayAdapter<String>
{

	public MyLevelAdapter(Context context, int resource, int textViewResourceId, String[] objects) 
	{
		super(context, resource, textViewResourceId, objects);
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) 
	{
		/* First inflate list_item and put it as a row */
		LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View row = inflater.inflate(R.layout.level_list_item, parent, false);
		row.setClickable(true);
	    row.setFocusable(true);
	    
	    /* For the anonymous inner classes */
	    final int i = position;
	    
	    /* Setting up the level buttons for modification */
		Button level = (Button) row.findViewById(R.id.level);
		
		/* Setting the Level */
		level.setText("Level "+ LevelChooser.levels[position]);
		
		
		level.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
				GameParameters.setParametersForLevel(i+1);
				
				LevelChooser.levelChosen = Integer.toString(i);
			}
		});
		if(LevelChooser.levelReached < position + 1)
		{
			row.setVisibility(View.INVISIBLE);
		}
		return row;
	}
	
	
}

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

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

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

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

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

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