سورس بازی Racing در اندروید
یکشنبه 1 مرداد 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" 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); } }
خروجی کار به صورت زیر است
- Android
- 1k بازدید
- 2 تشکر