سورس بازی Racing در اندروید

یکشنبه 1 مرداد 1396

در این مقاله قصد داریم برای شما یک سورس بازی قرار دهیم که باید شما دو شی را که در صفحه موجود است توسط یک ماشین با حرکات با لا و پایین و چپ و راست جا به جا نمایید و از مکان اولشان به جای مورد نظر آن ها را انتقال دهید

سورس بازی Racing در اندروید

ابتدا از 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"
    tools:context=".RaceActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world" />

</RelativeLayout>

داخل پوشه ی منو هم باید xml مربوطه را قرار دهید

ما چند تا کلاس برای حرکات ماشین و نوشتن رویداد هایی که ماشین را به جهات مختلف هدایت کند استفاده شده است

import org.andengine.entity.sprite.Sprite;
import org.andengine.extension.physics.box2d.PhysicsConnector;
import org.andengine.extension.physics.box2d.PhysicsFactory;
import org.andengine.opengl.texture.TextureOptions;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.andengine.opengl.texture.region.ITextureRegion;

import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
import com.badlogic.gdx.physics.box2d.FixtureDef;

public class Car {

	Body mCarBody;
	Sprite mCarSprite;
	Vector2 velocity;
	
	private BitmapTextureAtlas mCarTexture;
	ITextureRegion mCarTextureRegion;
	
	
	public void loadResources(RaceActivity raceActivity) {
		mCarTexture = new BitmapTextureAtlas(raceActivity.getTextureManager(), 36, 72, TextureOptions.BILINEAR);
		mCarTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(mCarTexture, raceActivity, "green-car-top.png", 0, 0);
		mCarTexture.load();
	}
	
	public void initialize(final RaceActivity raceActivity, final GameCamera gameCamera) {
		mCarSprite = new Sprite(80, 80, 36, 72, mCarTextureRegion, raceActivity.getVertexBufferObjectManager());
		final FixtureDef carFixtureDef = PhysicsFactory.createFixtureDef(0, 0, 1.0f);
		mCarBody = PhysicsFactory.createBoxBody(raceActivity.mPhysicsWorld, mCarSprite, BodyType.DynamicBody, carFixtureDef);
		mCarBody.setUserData("player");
		
		raceActivity.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(mCarSprite, mCarBody, true, false) {
			@Override
			public void onUpdate(float pSecondsElapsed) {
				super.onUpdate(pSecondsElapsed);
				gameCamera.bCamera.updateChaseEntity();
			}
		});
		raceActivity.mScene.attachChild(mCarSprite);
	}
}

خروجی کار به صورت زیر است

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید