Java 如何在android studio上移动精灵?
我是编程新手,我正试图在Android Studio中制作一个怪物从左向右移动的游戏。我已经有了一个明确的背景,我的怪物必须越过它。在编写文档之后,使用Sprite似乎是最好的解决方案。我试图重现我在几次托托里看到的东西,但什么都做不到。如果有人能告诉我应该遵循的程序,我开始失去希望:) 我有一个怪物:Java 如何在android studio上移动精灵?,java,android,android-studio,animation,sprite,Java,Android,Android Studio,Animation,Sprite,我是编程新手,我正试图在Android Studio中制作一个怪物从左向右移动的游戏。我已经有了一个明确的背景,我的怪物必须越过它。在编写文档之后,使用Sprite似乎是最好的解决方案。我试图重现我在几次托托里看到的东西,但什么都做不到。如果有人能告诉我应该遵循的程序,我开始失去希望:) 我有一个怪物: dic_Army.put("Monster1",new Army("Monster1","larvezouple_foreground"
dic_Army.put("Monster1",new Army("Monster1","larvezouple_foreground",20,2000,50,50,100,1,10,0));
当我点击一个按钮时,我想创建一个与这个怪物相关的精灵,让它在两点之间移动
btArmy1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Sprite sprite = new Sprite (bitmap1,100,100,50,50,3,3);
sprite.draw(canvas);
}
});
我的精灵构造函数如下所示:
public Sprite(Bitmap bitmap, int x, int y, int width, int height, int fps, int frameCount) {
this.bitmap = bitmap;
this.x = x;
this.y = y;
currentFrame = 0;
frameNr = frameCount;
spriteWidth = bitmap.getWidth() / frameCount;
spriteHeight = bitmap.getHeight();
sourceRect = new Rect(0, 0, spriteWidth, spriteHeight);
framePeriod = 1000 / fps;
frameTicker = 0l;
}
public void draw(Canvas canvas) {
Rect destRect = new Rect(getX(), getY(), getX() + spriteWidth, getY() + spriteHeight);
canvas.drawBitmap(bitmap, sourceRect, destRect, null);
canvas.drawBitmap(bitmap, 20, 150, null);
Paint paint = new Paint();
paint.setARGB(50, 0, 255, 0);
canvas.drawRect(20 + (currentFrame * destRect.width()), 150, 20 + (currentFrame * destRect.width()) + destRect.width(), 150 + destRect.height(), paint);
}
绘制方法如下所示:
public Sprite(Bitmap bitmap, int x, int y, int width, int height, int fps, int frameCount) {
this.bitmap = bitmap;
this.x = x;
this.y = y;
currentFrame = 0;
frameNr = frameCount;
spriteWidth = bitmap.getWidth() / frameCount;
spriteHeight = bitmap.getHeight();
sourceRect = new Rect(0, 0, spriteWidth, spriteHeight);
framePeriod = 1000 / fps;
frameTicker = 0l;
}
public void draw(Canvas canvas) {
Rect destRect = new Rect(getX(), getY(), getX() + spriteWidth, getY() + spriteHeight);
canvas.drawBitmap(bitmap, sourceRect, destRect, null);
canvas.drawBitmap(bitmap, 20, 150, null);
Paint paint = new Paint();
paint.setARGB(50, 0, 255, 0);
canvas.drawRect(20 + (currentFrame * destRect.width()), 150, 20 + (currentFrame * destRect.width()) + destRect.width(), 150 + destRect.height(), paint);
}
如果您添加与问题相关的部分代码,人们可能会更好地帮助您