سورس بازی Power Jeez در اندروید
یکشنبه 31 اردیبهشت 1396در این مقاله قصد داریم برای شما یک سورس بازی قرار دهیم که این بازی به این گونه است که دو توپ بر روی صفحه در حال حرکت هستنند شما باید طوری دیوار را بکشید که توپ ها به این دیوار ها نخورند تا برنده ی بازی شوید.
این بازی دارای چند لایه هست مربوط به تنظیمات ادامه بازی و نمایش مرحله های بازی نشان داده شده است
<?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;
}
}
خروجی به صورت زیر خواهد بود:

- Android
- 2k بازدید
- 1 تشکر