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

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

در این مقاله قصد داریم یک سورس بازی برای شما بگذاریم این بازی به این صورت است که یک زمانی که دکمه ی شروع بازی را می زنید یک مربع در گوشه ی صفحاتتون وجود دارد که شما باید آن را مورد هدف قرار دهید و آن را بزنید هر چه سریع تر این کار را انجام دهید امتیاز میگیرید.

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

در ابتدا یک لایه ی xml وجود دارد:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:onClick = "onStartClick"
        android:text="Start" />

    <Button
        android:id="@+id/hitme"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:visibility="gone"
        android:onClick="onTapClick"
        android:text="TAP MEH" />
    
    <Button
        android:id="@+id/again"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:visibility="gone"
        android:onClick="onAgainClick"
        android:text="PLAY AGAIN??!" />

    <TextView
        android:id="@+id/score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="Score: 0"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/timer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="24dp"
        android:text="Time: 30"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

کلاس مربوط به آن به صورت زیر خواهد بود:


import java.util.Random;

import android.os.Bundle;
import android.os.CountDownTimer;
import android.app.Activity;
import android.content.Context;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {
	/*Display idisplay = getWindowManager().getDefaultDisplay();

	public int displayWidth = idisplay.getWidth();
	public int displayHeight = idisplay.getHeight();*/
	public int displayWidth;
	public int displayHeight;
	private int score;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		

	}
	
	public void onStartClick(View view){
		Display display = getWindowManager().getDefaultDisplay();
		displayWidth = display.getWidth();
		displayHeight = display.getHeight();


		View t = findViewById(R.id.hitme);
		t.setVisibility(View.VISIBLE);

		CountDownTimer timer = new CountDownTimer(30000, 1000) {

			TextView timerField = (TextView) findViewById(R.id.timer);
			View h = findViewById(R.id.hitme);
			View a  = findViewById(R.id.again);
			public void onTick(long millisUntilFinished) {
				timerField.setText("Time: " + millisUntilFinished / 1000);
			}

			public void onFinish() {
				timerField.setText("Time's Up Bro!");
				h.setVisibility(View.GONE);
				a.setVisibility(View.VISIBLE);
			}
		}.start();

		View s = findViewById(R.id.start);
		s.setVisibility(View.GONE);

		Random r = new Random();

		int x = r.nextInt(displayWidth);
		int y = r.nextInt(displayHeight);
		
		System.out.println(""+x + ", " + y);
		if(y<100){
			y+=100;
		}
		if(x<100){
			x+=100;
		}
		if(x> (displayWidth-150)){
			x-=150;
		}
		if(y> (displayHeight-150)){
			y-=150;
		}
		t.setX(x);  
		t.setY(y);
	}
	public void onAgainClick(View view){
		Display display = getWindowManager().getDefaultDisplay();
		displayWidth = display.getWidth();
		displayHeight = display.getHeight();
		score =0;
		
		TextView s = (TextView)(findViewById(R.id.score));
		s.setText("Score: "+ score);
		
		View t = findViewById(R.id.hitme);
		t.setVisibility(View.VISIBLE);

		CountDownTimer timer = new CountDownTimer(30000, 1000) {

			TextView timerField = (TextView) findViewById(R.id.timer);
			View h = findViewById(R.id.hitme);
			View a = findViewById(R.id.again);
			public void onTick(long millisUntilFinished) {
				timerField.setText("Time: " + millisUntilFinished / 1000);
			}

			public void onFinish() {
				timerField.setText("Time's Up Bro!");
				h.setVisibility(View.GONE);
				a.setVisibility(View.VISIBLE);
			}
		}.start();

		View a = findViewById(R.id.again);
		a.setVisibility(View.GONE);

		Random r = new Random();

		int x = r.nextInt(displayWidth);
		int y = r.nextInt(displayHeight);
		System.out.println(""+x + ", " + y);
		if(y<100){
			y+=100;
		}
		if(x<100){
			x+=100;
		}
		if(x> (displayWidth-150)){
			x-=150;
		}
		if(y> (displayHeight-150)){
			y-=150;
		}
		t.setX(x);  
		t.setY(y);
	}


	public void onTapClick(View view){
		View t = findViewById(R.id.hitme);

		score++;
		TextView s = (TextView)(findViewById(R.id.score));
		s.setText("Score: "+ score);

		Random r = new Random();

		int x = r.nextInt(displayWidth);
		int y = r.nextInt(displayHeight);
		
		System.out.println(""+x + ", " + y);
		if(y<100){
			y+=100;
		}
		if(x<100){
			x+=100;
		}
		if(x> (displayWidth-150)){
			x-=150;
		}
		if(y> (displayHeight-150)){
			y-=151;
		}
		t.setX(x);  
		t.setY(y);
	}



	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}


}

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

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

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

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

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

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