Angle 게임 엔진 기반 설명서
/**
*
*/
class MyShip extends AngleSprite
{
AngleVector mDestination;//
float Speed; //
public MyShip(AngleSpriteLayout sprite)
{
super(sprite);
mPosition.set(160,240);//
mDestination=new AngleVector(mPosition);
Speed=200;
}
@Override
public void step(float secondsElapsed)
{ //
if ((int)mPosition.mX<(int)mDestination.mX)
mPosition.mX+=Speed*secondsElapsed;
if ((int)mPosition.mX>(int)mDestination.mX)
mPosition.mX-=Speed*secondsElapsed;
if ((int)mPosition.mY<(int)mDestination.mY)
mPosition.mY+=Speed*secondsElapsed;
if ((int)mPosition.mY>(int)mDestination.mY)
mPosition.mY-=Speed*secondsElapsed;
super.step(secondsElapsed);
}
}
class MyShot extends AngleSprite
{
public MyShot(MyShip ship, AngleSpriteLayout layout)
{
super(layout);
//
mPosition.set(ship.mPosition.mX, ship.mPosition.mY - 20);
}
@Override
public void step(float secondsElapsed)
{
// 300
mPosition.mY -= 300 * secondsElapsed;
if (mPosition.mY < -10)
mDie=true;
super.step(secondsElapsed);
}
};
public MyDemo(AngleActivity activity)
{
super(activity);
//Create and insert two main object groups. One for the game field and other for the dashboard
//>Creamos e insertamos dos grupos de objetos principales. Uno para el campo de juego y otro para los marcadores
ogField=addObject(new AngleObject());
ogDashboard=addObject(new AngleObject());
//Create a tile bank and a tile map for the ground (see constructors)
//>Creamos un banco de tiles y un mapa para el suelo (mirar los constructores)
AngleTileBank tbGround = new AngleTileBank(mActivity.mGLSurfaceView,R.drawable.tilemap,4,4,32,32);
tmGround = new AngleTileMap(tbGround, 320, 480, 15, 100, false,false);
for (int t=0;t<tmGround.mColumnsCount*tmGround.mRowsCount;t++)
tmGround.mMap[t]=(int) (Math.random()*tbGround.mTilesCount);
// Put the bottom of the camera at the lowest part of the map
//>Ponemos la c ara en la parte m baja del mapa
tmGround.mTop = tmGround.mRowsCount* tbGround.mTileHeight - tmGround.mHeight;
ogField.addObject(tmGround);
slShip = new AngleSpriteLayout(mActivity.mGLSurfaceView,64, 64, R.drawable.anglelogo, 0, 0, 128, 128);
slShot = new AngleSpriteLayout(mActivity.mGLSurfaceView,16, 16, R.drawable.anglelogo, 0, 0, 128, 128);
mShip = (MyShip)ogField.addObject(new MyShip(slShip));
mOtherShip = (MyShip)ogField.addObject(new MyShip(slShip));
//The dashboard background
//>Fondo de los marcadores
AngleSpriteLayout slDash = new AngleSpriteLayout(mActivity.mGLSurfaceView, 320, 64, R.drawable.tilemap, 0, 32, 320, 64);
AngleSprite mDash=(AngleSprite)ogDashboard.addObject(new AngleSprite (slDash));
mDash.mPosition.set(160, 480-slDash.roHeight/2);
mDash.mAlpha=0.5f;
//Font and text
//>Fuente y texto
AngleFont fntCafe25 = new AngleFont(mActivity.mGLSurfaceView, 25, Typeface.createFromAsset(getAssets(),"cafe.ttf"), 222, 0, 0, 30, 200, 255, 255);
ogDashboard.addObject(new AngleString(fntCafe25,"I Like The 2D Game Development Very Much~~",160,440,AngleString.aCenter));
}
위에서 보면 진짜 게임 엔진이 쉬워요.
하지만 게임 엔진은 간단하고, 극복해야 할 문제는 존재한다.
지도를 만들 때만 위의 코드에서 알 수 있듯이 100줄의 지도를 직접 만들 수 있지만 더 많이 만들면 휴대전화에서 견딜 수 없기 때문에 좋은 캐시 정책이 필요하다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.