ゲームエンジンなしで2Dゲームを作成する方法を学んでいますが、とにかく私はすでに背景スクロールを作成しました。私の目標はキャラクターを飛ばすことです。しかし、私のアプリを起動するたびに、キャラクターが上下に回転していて、バックグラウンドに移動するだけです。単純なジャンプをしようとする
ここに私の文字コード
public class Deer extends GameCharacter {
private Bitmap spritesheet;
private double dya;
private boolean playing;
private long startTime;
private boolean Jump;
private Animate Animation = new Animate();
public Deer(Bitmap res, int w, int h, int numFrames) {
x = 20;
y = 400;
dy = 0;
height = h;
width = w;
Bitmap[] image = new Bitmap[numFrames];
spritesheet = res;
for (int i = 0; i < image.length; i++)
{
image[i] = Bitmap.createBitmap(spritesheet, i*width, 0, width, height);
}
Animation.setFrames(image);
Animation.setDelay(10);
startTime = System.nanoTime();
}
public void setJump(boolean b){
Jump = b;
}
public void update()
{
long elapsed = (System.nanoTime()-startTime)/1000000;
if(elapsed>100)
{
}
Animation.update();
if(Jump){
dy = (int)(dya+=5.5);
}
else{
dy = (int)(dya+=5.5);
}
if(dy>14)dy = 14;
if(dy>14)dy = -14;
y += dy*2;
dy = 0;
}
public void draw(Canvas canvas)
{
canvas.drawBitmap(Animation.getImage(),x,y,null);
}
public boolean getPlaying(){return playing;}
public void setPlaying(boolean b){playing = b;}
public void resetDYA(){dya = 0;}
}
Xの - 文字の水平位置 Y - 文字の垂直位置 DX - キャラクターの水平加速度の のDY - 文字の垂直加速度
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN) {
if(!deer.getPlaying()) {
deer.setPlaying(true);
}
deer.setJump(true);
return true;
}
return super.onTouchEvent(event);
}
(ジャンプ){ dy =(int)(dya- = 1.1); } else { dy =(int)(dya + = 1。1)。 } if(dy> 14)dy = 14; if(dy <-14)dy = -14; y + = dy * 2; dy = 0; しかし、チャプターが下がり、キャラクターが消えてしまいます – noobkoder
答えに加えた解決策を考えてください。それはあなた自身の物理学を取ることよりもはるかにうまく役立つでしょう。 @noobkoder – ChiefTwoPencils
ありがとう、私はそれを試してみるつもりです。私はそれがフレームワークまたはゲームエンジンを使用して独自の2Dゲームを作る方が良いと聞いた – noobkoder