Я начинаю игру dev, и у меня в настоящее время возникают проблемы с моей игрой .... Я бы хотел, чтобы игра обновляла холст каждый раз, когда я петлю, чтобы показать свою характер двигаться в одном прессе изображения ... Invalidate() не работает для меня здесь, так как он показывает только конечное положение моего персонажа Вот код для этого:Android Invalidate() каждый раз, когда возникает цикл
@Override
public boolean onTouchEvent(MotionEvent event) {
final int x = (int)event.getX();
final int y = (int)event.getY();
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
if (rollbounds.contains((int)x, (int)y))
{
//dice roll
Random rand = new Random();
move = rand.nextInt(6) + 1;
//end of dice roll
//move counting
for (int loop=move;loop>0;loop--)
{
if ((charypos >= 220)&&(charxpos == 9))
{
Toast toast = Toast.makeText(getContext(), "You Win", Toast.LENGTH_SHORT);
toast.show();
loop=1;
}
if (charxpos != 205&&charLeftMove==false)
{
for (int loop2 = 28;loop2>0;loop2--)
{
charxpos+=1;
//update or invalidate here
}
Это вот когда я прикасаюсь к кнопке roll, я бы заставил персонажа плавно перемещать количество пробелов, так как invalidate заставляет его мгновенно переместиться в конечную позицию. Помощь с благодарностью
попытаться использовать postInvalidate, и я хотел бы попробовать, чтобы получить плавное движение вне onTouchEvent, может быть, на OnDraw, тестирование, если мне нужно двигаться снова и повторно Invalidate (как эффект прокрутки: если (mScroller.computeScrollOffset()) { INT DeltaX = actualX - mPrevX; postInvalidate();} –
дал мой код выше, вы пожалуйста дали бы мне пример кода I Я новичок, поэтому мне очень нужны вещи, чтобы продолжить, прежде чем я смогу попробовать. –