سورس بازی 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
- 1k بازدید
- 2 تشکر