Android : Catch this Rabbit
Créer un Jeux catch rabbit
1.Layout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFEB3B"
android:orientation="vertical"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="12"
android:orientation="horizontal"
android:background="#CDDC39">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:text="Start"
android:backgroundTint="#FF5722"
android:textSize="18dp"
android:id="@+id/rabbitStart"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:text="-"
android:backgroundTint="#E91E63"
android:textSize="20dp"
android:layout_marginLeft="5dp"
android:id="@+id/rabbitNiveauMoins"/>
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:text="+"
android:backgroundTint="#9C27B0"
android:textSize="20dp"
android:layout_marginLeft="5dp"
android:id="@+id/rabbitNiveauPlus"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:text="0"
android:textStyle="bold"
android:backgroundTint="#FF5722"
android:textSize="18dp"
android:gravity="center"
android:id="@+id/rabbitScore"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"
android:background="#FF9800">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit0"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit1"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:backgroundTint="#fff"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit2"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:backgroundTint="#fff"
android:layout_margin="2dp"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit3"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit4"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit5"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit6"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit7"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit8"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit9"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit10"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageRabbit11"
android:backgroundTint="#fff"
android:src="@drawable/viderabit"
android:scaleType="fitXY"
android:layout_margin="2dp"/>
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
2.Java
public class CatchRabbit extends AppCompatActivity implements View.OnClickListener {
//1.les objets java
TextView rabbitScore;
Button rabbitStart;
Button rabbitNiveauPlus,rabbitNiveauMoins;
ImageButton[] mescases=new ImageButton[12];
int caseRabit=-1;
CountDownTimer timer;
int points=0;
int dureeGame=1000000;//10 000 seconds
int vitesse=1000;//seconds
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catch_rabbit);
//2.laision entres les objest java et les objet graphiques
rabbitScore=findViewById(R.id.rabbitScore);
rabbitStart=findViewById(R.id.rabbitStart);
rabbitNiveauPlus=findViewById(R.id.rabbitNiveauPlus);
rabbitNiveauMoins=findViewById(R.id.rabbitNiveauMoins);
for(int i=0;i<12;i++)
{
int id=getResources().getIdentifier("imageRabbit"+i,"id",getPackageName());
mescases[i]=findViewById(id);
mescases[i].setOnClickListener(this);
}
//3.Ecoutez les objets cliquable
rabbitStart.setOnClickListener(this);
rabbitNiveauPlus.setOnClickListener(this);
rabbitNiveauMoins.setOnClickListener(this);
//permet de faire setInerval de javascript
timer=new CountDownTimer(dureeGame,vitesse) {
@Override
public void onTick(long l) {
//onTick s'éxécute chaque vitesse seconds
moveRabbit();
}
@Override
public void onFinish() {
//s'exécute lorsque le game is over => dureeGame est dépassé
}
};
}
@Override
public void onClick(View view) {
if(rabbitStart.getId()==view.getId())
{
timer.start();
}
if(caseRabit!=-1) {
if (rabbitNiveauPlus.getId() == view.getId()) {
vitesse -= 10;
}
if (rabbitNiveauMoins.getId() == view.getId()) {
vitesse += 10;
}
rabbitScore.setText(""+vitesse);
//arreter le compteur
timer.cancel();
//relancer le compteur
timer=new CountDownTimer(dureeGame,vitesse) {
@Override
public void onTick(long l) {
//onTick s'éxécute chaque vitesse seconds
moveRabbit();
}
@Override
public void onFinish() {
//s'exécute lorsque le game is over => dureeGame est dépassé
}
}.start();
}
//lorsque on clique sur une rabbit
for(int i=0;i<12;i++)
{
if(mescases[i].getId()==view.getId())
{
if(caseRabit==i)
{
points++;
}
else
{
points--;
}
rabbitScore.setText(""+points);
}
}
}
void moveRabbit()
{
//vider la case rabbit s'elle existe
if(caseRabit!=-1)
{
mescases[caseRabit].setImageResource(R.drawable.viderabit);
}
//Afficher une rabit dans une case
caseRabit=(int)Math.floor(Math.random()*11);
mescases[caseRabit].setImageResource(R.drawable.rabit3);
}
}