Öncelikle Merhaba Android merakım üzerine Android programlamada öğrenmek adına bir proje yapmak istedim bir dili proje yaparak daha iyi anlayabilecegimi düşünenlerdenim.
Oyunun nasıl yazıldıgına gelicek olursak Android Studio da Libgdx eklentisiyle yazılmıştır
Libgdx Eklentisi indirme : https://libgdx.badlogicgames.com/download.html
Oyunun içerigine gelicek olursak Yukardan paralar dökülüyor o paraları yakamaya çalışıyorsunuz yakaladıgınızda skor degeriniz 1 artıyor fakat oyun basit oldugu için yanma yeniden başlama gibi özellikleri bulunmamaktadır siz kendiniz ekleyebilirsiniz geliştirilebilir veya libgdx eklentisini kullanarak siz kendinizde bir oyun yazabilirsiniz her neyse kodları paylaşalım artık.
package com.unsaldeneme.oyun;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.freetype.FreeType;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.TimeUtils;
import java.util.Iterator;
public class Merhaba_oyun extends ApplicationAdapter {
//tanımladıgım degiskenler
private OrthographicCamera kamera;
private SpriteBatch batch;
private Texture resimrte;
private Texture resimpara;
private Rectangle rctrte;
private Array<Rectangle> Array_paralar;
private long sonParazaman;
private Sound sesRec;
private BitmapFont font;
int score;
@Override
public void create() {
//kamerayı çağıracagımız yer
kamera=new OrthographicCamera();
kamera.setToOrtho(false,800,480);
//resimler
resimrte=new Texture(Gdx.files.internal("rte.png"));
resimpara=new Texture(Gdx.files.internal("parakutusu.png"));
sesRec=Gdx.audio.newSound(Gdx.files.internal("oneminute.mp3"));
Array_paralar=new Array<Rectangle>();
//SpriteBatch ile ilgili yapılacaklar
batch=new SpriteBatch();
//dikdörtgenler
rctrte=new Rectangle();
rctrte.width=64;
rctrte.height=64;
rctrte.x=800/2-rctrte.width/2;
rctrte.y=20;
paraUret();
font=new BitmapFont();
font.setColor(0.8f,0,0,1);
}
private void paraUret()
{
Rectangle rctPara=new Rectangle();
rctPara.width=64;
rctPara.height=64;
rctPara.x= MathUtils.random(0,800-64);
rctPara.y=480;
Array_paralar.add(rctPara);
sonParazaman= TimeUtils.nanoTime();
}
@Override
public void render() {
Gdx.gl.glClearColor(0,0,0.2f,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//kamera güncellemesi
kamera.update();
//tuvali - sayfayı kameraya göre ayarlama
batch.setProjectionMatrix(kamera.combined);
batch.begin();
batch.draw(resimrte,rctrte.x,rctrte.y);
for (Rectangle rctPara:Array_paralar) {
batch.draw(resimpara,rctPara.x,rctPara.y);
}
font.draw(batch,"Score: "+score,50,450);
batch.end();
//dokundugum yere gönderme
if(Gdx.input.isTouched()){
//dokundugum yeri almak VEKTÖR 3 le
Vector3 dokunmaPozisyonu =new Vector3();
//ekranda dokundugum yerin kordinatlarını verme
dokunmaPozisyonu.set(Gdx.input.getX(),Gdx.input.getY(),0);
//dokundugumuzun yerin kordinatını uyarlama
kamera.unproject(dokunmaPozisyonu);
rctrte.x=dokunmaPozisyonu.x-rctrte.width/2;
}
if(TimeUtils.nanoTime()-sonParazaman>700000000) {
paraUret();
}
Iterator<Rectangle> para=Array_paralar.iterator();
while(para.hasNext()){
Rectangle rctPara=para.next();
rctPara.y -=300*Gdx.graphics.getDeltaTime();
if(rctPara.y+64<0){
para.remove();
}
if(rctPara.overlaps(rctrte))
{
sesRec.play();
para.remove();
score=score+1;
}
}
}
@Override
public void dispose() {
resimpara.dispose();
resimrte.dispose();
batch.dispose();
sesRec.dispose();
font.dispose();
}
}
DİPNOT : Kodda belirtilen resimleri vermeyecegim siz kendiniz koyup degiştirebilirsiniz resimleri asset klasörünün içine atıp kodda kendi resim isminizle değiştirmeniz yeterli olacaktır.

Yaptığımız oyunda arka planı nasıl hareket ettirebiliriz?