2 Savaşçı, 1 Savaş Bölgesi / Android telefonlar için basit bir multiplayer oyun tasarladım.


2 Savaşçı, 1 Savaş Bölgesi / Android telefonlar için basit bir multiplayer oyun tasarladım.

Selamlar arkadaşlar, bu yazımda sizlere basit bir şekilde yapabileceğiniz ve android telefonlarda oynatabileceğiniz bir multiplayer oyunu tanıtacağım. Uygulama kodlarını kısaca anlatmaya çalışacağım yazımın sonunda uygulamanın kaynak kodlarını sizlerle paylaşıyorum.

Evet ilk başta warrior.class'tan yani bizim oyuncuların tanımlamalarından başlayalım
>>
package com.example.textreader;

public class warrior {
int kilo;
int hareket_sayisi;
int saldiri_gucu;
int ilac;
int can;
int karsi_saldiri;

public warrior() {
}

public String yemek() {
if (this.hareket_sayisi > 0) {
this.kilo += 10;
--this.hareket_sayisi;
this.can += 3;
return "yemek yedi ve kilo aldi";
} else {
return "Yemek yiyemedi, yeterli hareket yok";
}
}

public String uyumak() {
if (this.hareket_sayisi > 0) {
--this.hareket_sayisi;
++this.saldiri_gucu;
this.kilo -= 10;
this.can += 3;
return "warroir uyudu";
} else {
return "Uyuyamadi, yeterli hareket yok";
}
}

public String saldiri() {
if (this.hareket_sayisi > 0) {
--this.hareket_sayisi;
this.kilo -= 10;
return "Savasti";
} else {
return "Savasamadi, yeterli hareket yok";
}
}

public String ilac_ic() {
if (this.hareket_sayisi > 0) {
--this.ilac;
--this.hareket_sayisi;
++this.saldiri_gucu;
this.kilo -= 10;
this.can += 2;
return "Ilac icti";
} else {
return "Ilac Icemedi, yeterli hareket yok";
}
}

public String ilac_yap() {
if (this.hareket_sayisi > 0) {
++this.ilac;
--this.hareket_sayisi;
this.kilo -= 10;
return "Ilac yapildi";
} else {
return "Ilac yapilamadi, yeterli hareket yok";
}
}

public String hasarkaydi() {
this.can -= this.karsi_saldiri * 3;
return "Savasamadi, yeterli hareket yok";
}

public String toString() {
return "Can: " + this.can + "\nKilo: " + this.kilo + "\nHareket Sayisi: " + this.hareket_sayisi + "\nSaldiri Gucu: " + this.saldiri_gucu + "\nIlac Miktari: " + this.ilac;
}
}
Evet şimdi ilk sayfamıza giriş yapalım
>>
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.content.Intent;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
//bize lazim olan degiskenlerimizi girelim
TextView taraf, maviSonuc, kirmiziSonuc, yapilanHareket, karsiyaEtkisi;
Button info, retry, baslat, kirmiziSaldir, kirmiziYe, kirmiziHeal, kirmiziUyu, kirmiziIlacYap, maviSaldir, maviYe, maviHeal, maviUyu, maviIlacYap;
warrior mavi;
warrior kirmizi;
boolean kirmizi_oynama = true;
String winner;
String loser;
Intent k,info_sayfasi;


//oncreate fonksiyonu, bu fonksiyon ekran acilinca calisir.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//ikinci sayfayi acabilmek icin
k = new Intent(this, MainActivity2.class);
info_sayfasi = new Intent(this, MainActivity3.class);

//Butonlar findViewById ile cagiriyoruz.
kirmiziSaldir = findViewById(R.id.kirmizi_saldir);
maviSaldir = findViewById(R.id.mavi_saldir);
kirmiziYe = findViewById(R.id.kirmizi_ye);
maviYe = findViewById(R.id.mavi_ye);
kirmiziHeal = findViewById(R.id.kirmizi_heal);
maviHeal = findViewById(R.id.mavi_heal);
kirmiziUyu = findViewById(R.id.kirmizi_uyu);
maviUyu = findViewById(R.id.mavi_uyu);
kirmiziIlacYap = findViewById(R.id.kirmizi_ilac_yap);
maviIlacYap = findViewById(R.id.mavi_ilac_yap);
baslat = findViewById(R.id.baslat);
retry = findViewById(R.id.retry);
info = findViewById(R.id.info);

//listener kisimlarini halledelim
kirmiziSaldir.setOnClickListener(this);
kirmiziYe.setOnClickListener(this);
kirmiziHeal.setOnClickListener(this);
kirmiziIlacYap.setOnClickListener(this);
kirmiziUyu.setOnClickListener(this);
maviSaldir.setOnClickListener(this);
maviYe.setOnClickListener(this);
maviHeal.setOnClickListener(this);
maviIlacYap.setOnClickListener(this);
maviUyu.setOnClickListener(this);
baslat.setOnClickListener(this);
retry.setOnClickListener(this);
info.setOnClickListener(this);

//ilk basta baslat butonu disinda digerlerini iptal ediyoruz.
kirmiziSaldir.setEnabled(false);
kirmiziYe.setEnabled(false);
kirmiziHeal.setEnabled(false);
kirmiziIlacYap.setEnabled(false);
kirmiziUyu.setEnabled(false);
maviSaldir.setEnabled(false);
maviYe.setEnabled(false);
maviHeal.setEnabled(false);
maviIlacYap.setEnabled(false);
maviUyu.setEnabled(false);



//iki warrior olusturalim.
/* bunlari kullanacagiz.
int kilo;
int hareket_sayisi;
int saldiri_gucu;
int ilac; */
mavi = new warrior();
kirmizi = new warrior();
kirmizi.can = 100;
mavi.can = 100;
mavi.hareket_sayisi = 30;
kirmizi.hareket_sayisi = 30;
mavi.ilac = 10;
kirmizi.ilac = 10;
mavi.saldiri_gucu = 1;
kirmizi.saldiri_gucu = 1;
mavi.kilo = 100;
kirmizi.kilo = 100;

//Burada TextViewlari ekleyelim
taraf = findViewById(R.id.taraf);
maviSonuc = findViewById(R.id.mavi_sonuc);
kirmiziSonuc = findViewById(R.id.kirmizi_sonuc);
yapilanHareket = findViewById(R.id.yapilan_hareket);
karsiyaEtkisi = findViewById(R.id.karsiya_etkisi);

//Burada ilk yazilmasi gerekenleri yazdiralim ekrana
taraf.setText("Yarışma Vakti");
maviSonuc.setText(mavi.toString());
kirmiziSonuc.setText(kirmizi.toString());
yapilanHareket.setText("Oyun Başladı, kırmızı oyuncudan hareket bekleniyor...");
karsiyaEtkisi.setText("Mavi Oyunucu beklemede..");

}

@Override
public void onClick(View v) {

//baslat butonu
if(v.getId() == baslat.getId()) {
baslat.setVisibility(View.INVISIBLE);
kirmiziSaldir.setEnabled(true);
kirmiziYe.setEnabled(true);
kirmiziHeal.setEnabled(true);
kirmiziIlacYap.setEnabled(true);
kirmiziUyu.setEnabled(true);
maviSaldir.setEnabled(true);
maviYe.setEnabled(true);
maviHeal.setEnabled(true);
maviIlacYap.setEnabled(true);
maviUyu.setEnabled(true);
baslat.setEnabled(true);
}

//eger oyuncular tekrar oynamak isterse
if(v.getId() == retry.getId()) {
kirmizi.can = 100;
mavi.can = 100;
mavi.hareket_sayisi = 30;
kirmizi.hareket_sayisi = 30;
mavi.ilac = 10;
kirmizi.ilac = 10;
mavi.saldiri_gucu = 1;
kirmizi.saldiri_gucu = 1;
mavi.kilo = 100;
kirmizi.kilo = 100;
}

//eger oyun hakkinda bilgi almak isterse
if(v.getId() == info.getId()){
startActivity(info_sayfasi);
}

//kirmizi saldir butonu
if(v.getId() == kirmiziSaldir.getId() && kirmizi_oynama==true){
kirmizi_oynama = false;
yapilanHareket.setText("Kırmızı Maviye saldırdı");
mavi.karsi_saldiri = kirmizi.saldiri_gucu;
mavi.hasarkaydi();
kirmizi.saldiri();
karsiyaEtkisi.setText("Mavi hasar aldı");
}

//kirmizi ye butonu
else if(v.getId() == kirmiziYe.getId() && kirmizi_oynama==true){
kirmizi_oynama = false;
yapilanHareket.setText("Kırmızı yemek yedi");
kirmizi.yemek();
karsiyaEtkisi.setText("Mavi yemek yemesini izledi");
}

//kirmizi ilac ic butonu
else if(v.getId() == kirmiziHeal.getId() && kirmizi_oynama==true){
kirmizi_oynama = false;
yapilanHareket.setText("Kırmızı can topladı");
kirmizi.ilac_ic();
karsiyaEtkisi.setText("Mavinin canı sıkıldı");

}

//kirmizi Ilac yap butonu
else if(v.getId() == kirmiziIlacYap.getId() && kirmizi_oynama==true){
kirmizi_oynama = false;
yapilanHareket.setText("Kırmızı ilaç yaptı");
kirmizi.ilac_yap();
karsiyaEtkisi.setText("Mavi beklemede");
}

//kirmizi uyu butonu
else if(v.getId() == kirmiziUyu.getId() && kirmizi_oynama==true){
kirmizi_oynama = false;
yapilanHareket.setText("Kırmızı kestirmek istedi");
kirmizi.uyumak();
karsiyaEtkisi.setText("Mavi uyanmasını bekledı");
}

//mavi saldir butonu
else if(v.getId() == maviSaldir.getId() && kirmizi_oynama==false){
kirmizi_oynama = true;
yapilanHareket.setText("Mavi Kırmızıya saldırdı");
kirmizi.karsi_saldiri = mavi.saldiri_gucu;
kirmizi.hasarkaydi();
mavi.saldiri();
karsiyaEtkisi.setText("Kırmızı hasar aldı");
}

//mavi ye butonu
else if(v.getId() == maviYe.getId() && kirmizi_oynama==false){
kirmizi_oynama = true;
yapilanHareket.setText("Mavi Yemek Yedi");
mavi.yemek();
karsiyaEtkisi.setText("Kırmızı yemek yemesini bekledi");
}

//mavi ilac ic butonu
else if(v.getId() == maviHeal.getId() && kirmizi_oynama==false){
kirmizi_oynama = true;
yapilanHareket.setText("Mavi can topladı");
mavi.ilac_ic();
karsiyaEtkisi.setText("Kırmızı saatine bakıyor");
}

//mavi ilac yap butonu
else if(v.getId() == maviIlacYap.getId() && kirmizi_oynama==false){
kirmizi_oynama = true;
yapilanHareket.setText("Mavi ilac yaptı");
mavi.ilac_yap();
karsiyaEtkisi.setText("Kırmızı izlemede");
}

//mavi uyuma butonu
else if(v.getId() == maviUyu.getId() && kirmizi_oynama==false){
kirmizi_oynama = true;
yapilanHareket.setText("Mavi kestirmek istedi");
mavi.uyumak();
karsiyaEtkisi.setText("Kırmızı ayakta duruyor");

}
//burada ise siranin kimde oldugunu yazdiriyoruz ekrana
if(kirmizi_oynama==false){
taraf.setText("Sıra Mavide");
}
else{
taraf.setText("Sıra Kırmızıda");
}

//son durum degisikliklerini yaziyoruz ekrana
maviSonuc.setText(mavi.toString());
kirmiziSonuc.setText(kirmizi.toString());

//burada son durumu ogrenip diger ekrana gecis yapacagiz.
if(mavi.kilo<1 || kirmizi.kilo<1){
//burada ekrana yonlendirecegiz
if(mavi.kilo>0){
winner = "MAVI WARRIOR";
loser = "KIRMIZI WARRIOR";
}
else if(kirmizi.kilo>0){
winner = "KIRMIZI WARRIOR";
loser = "MAVI WARRIOR";
}
k.putExtra("KAZANAN", winner);
k.putExtra("KAYBEDEN", loser);
startActivity(k);
}
//can icin bakalim
else if(mavi.can<1 || kirmizi.can<1){
//burada ekrana yonlendirecegiz
if(mavi.can>0){
winner = "MAVI WARRIOR";
loser = "KIRMIZI WARRIOR";
}
else if(kirmizi.can>0){
winner = "KIRMIZI WARRIOR";
loser = "MAVI WARRIOR";
}
k.putExtra("KAZANAN", winner);
k.putExtra("KAYBEDEN", loser);
startActivity(k);
}
//burada hareket sayilarini kontrol ediyoruz
else if(mavi.hareket_sayisi<1 && kirmizi.hareket_sayisi<1){
//buradan da ekrana yonlendirecegiz
if(mavi.can > kirmizi.can){
winner = "MAVI WARRIOR";
loser = "KIRMIZI WARRIOR";
}
else if(kirmizi.can > mavi.can){
winner = "KIRMIZI WARRIOR";
loser = "MAVI WARRIOR";
}
k.putExtra("KAZANAN", winner);
k.putExtra("KAYBEDEN", loser);
k.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(k);
finish();
}


//birinin hareket sayisi azalinca butonlar kapaniyor.
if(mavi.hareket_sayisi<1){
maviSaldir.setEnabled(false);
maviYe.setEnabled(false);
maviHeal.setEnabled(false);
maviIlacYap.setEnabled(false);
maviUyu.setEnabled(false);
}
else if(kirmizi.hareket_sayisi<1){
kirmiziSaldir.setEnabled(false);
kirmiziYe.setEnabled(false);
kirmiziHeal.setEnabled(false);
kirmiziIlacYap.setEnabled(false);
kirmiziUyu.setEnabled(false);
}




}
}
Evet şimdi ikinci sayfamıza giriş yapalım
>>

package com.example.textreader;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.core.app.ActivityCompat;

public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {

//butonlarimizi girelim
Button tekrardan_oyna;

//textviewleri girelim
TextView kazanan, kaybeden;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

//findviewbyidler
kazanan = findViewById(R.id.kazanantayfa);
kaybeden = findViewById(R.id.kaybedenlerklubu);
tekrardan_oyna = findViewById(R.id.button);

//ekrana yazdirma islemi
kazanan.setText(getIntent().getStringExtra("KAZANAN"));
kaybeden.setText(getIntent().getStringExtra("KAYBEDEN"));
}

@Override
public void onClick(View v) {
if(v.getId() == tekrardan_oyna.getId()) {
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
}

}
Evet şimdi 3. sayfamızın görselini size aktaralım sadece çünkü orada sadece oyunu anlatan bir görsel mevcuttur, kodda ekstra bir düzenleme söz konusu değildir.


Uygulama Kaynak Kodu / The source code of the game
Github >>

Uygulamanın kısa videosu sizlerle >>



Yorumlar

Yorum Gönder

Bu blogdaki popüler yayınlar

Python ile Turtle Kütüphanesiyle Çizim Denemesi 2

Girdimize en yakın palindrom değeri bulan program (Python3 ile)

Python ile Yazıyı Piramit Gibi Çizdirme