每当用户点击屏幕时,我想更改包含图像的位图。即默认图像是shadow1,现在我想要的是当用户在屏幕上触摸然后这个图像变为shadow2,然后再次如果用户触摸了shadow3,然后在下一次触摸时图像再次变为shadow1并且它继续打开和上。所以基本上有三个图像,我希望当用户触摸屏幕时,每次点击都会改变图像。 以下是我尝试的代码,但它仍然没有按预期工作,即图像从shadow1变为shadow2,但即使我多次触摸,也不会更改为shadow3或shadow1。
public void Touched(float x, float y)
{
boom = false;
try{
switch (bird.GetState()) {
case 0:
distance = 0;
bird.SetState(1);
flapped = true;
Bitmap workingBitmap = BitmapFactory.decodeResource(gameLogic.Resources(), R.drawable.shadow1);
bitmapBird = workingBitmap.copy(Bitmap.Config.ARGB_8888, false);
if (bitmapBird==workingBitmap)
{
}
riseCounter = 0;
pipeValues.clear();
//SoundManager.playSound(2, 1);
break;
case 1:
{
riseCounter = 0;
flapped = true;
t = 3;
Bitmap workingBitmappp = BitmapFactory.decodeResource(gameLogic.Resources(), R.drawable.shadow2);
bitmapBird = workingBitmappp.copy(Bitmap.Config.ARGB_8888, false);
//SoundManager.playSound(2, 1);
}
break;
case 2:
{
riseCounter = 0;
flapped = true;
t = 0;
}
break;
default:
Bitmap workingBitma = BitmapFactory.decodeResource(gameLogic.Resources(), R.drawable.shadow3);
bitmapBird = workingBitma.copy(Bitmap.Config.ARGB_8888, false);
break;
}
} catch(Exception e){}
}
我认为'case 1'中应该存在for循环或while循环,并且每当用户点击然后图像更改时。请帮帮我。
答案 0 :(得分:1)
您只需使用SELECT * FROM TRANSACTION_TABLE T
INNER JOIN VALUATION_TABLE V WHERE T.VAL_FK = V.ID
WHERE (SELECT COUNT(*) FROM V WHERE V.DATE > <GIVEN DATE>) > 1
值即可跟踪显示的图像;
首先在班级初始化int
;
int
然后你可以用它作为;
int num = 0;
答案 1 :(得分:1)
我认为你需要在你的第二个案例陈述中改变鸟的状态。
第一次迭代会将状态设置为1,从那里,您可以命中的唯一case语句是case 1:
,因为您永远不会更改它。
所以你需要像
这样的东西case 1:
bird.SetState(2);
//....
希望有所帮助