سورس بازی reflex در اندروید
چهارشنبه 3 خرداد 1396در این مقاله قصد داریم یک سورس بازی برای شما بگذاریم این بازی به این صورت است که یک زمانی که دکمه ی شروع بازی را می زنید یک مربع در گوشه ی صفحاتتون وجود دارد که شما باید آن را مورد هدف قرار دهید و آن را بزنید هر چه سریع تر این کار را انجام دهید امتیاز میگیرید.
در ابتدا یک لایه ی 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;
}
}
خروجی آن به صورت زیر خواهد بود:

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