Вопрос по лучшей практике пользовательского интерфейса: кнопка "Отмена" или ссылка "Отмена"

Во-первых, используйте ограничительные рамки, как описано Jonathan Holland , чтобы найти, может ли у Вас быть коллизия.

От (многокрасочных) спрайтов, создайте черные и белые версии. У Вас, вероятно, уже есть они, если Ваши спрайты прозрачны (т.е. существуют места, которые являются в ограничительной рамке, но можно все еще видеть фон). Это "маски".

Использование Image.getRGB() на маске для достигания пикселей. Для каждого пикселя, который не прозрачен, устанавливает немного в целочисленном массиве (playerArray и enemyArray ниже). Размер массива height если width <= 32 пиксели, (width+31)/32*height иначе. Код ниже для width <= 32.

, Если у Вас есть коллизия ограничительных рамок, сделайте это:

// Find the first line where the two sprites might overlap
int linePlayer, lineEnemy;
if (player.y <= enemy.y) {
    linePlayer = enemy.y - player.y;
    lineEnemy = 0;
} else {
    linePlayer = 0;
    lineEnemy = player.y - enemy.y;
}
int line = Math.max(linePlayer, lineEnemy);

// Get the shift between the two
x = player.x - enemy.x;
int maxLines = Math.max(player.height, enemy.height);
for ( line < maxLines; line ++) {
    // if width > 32, then you need a second loop here
    long playerMask = playerArray[linePlayer];
    long enemyMask = enemyArray[lineEnemy];
    // Reproduce the shift between the two sprites
    if (x < 0) playerMask << (-x);
    else enemyMask << x;
    // If the two masks have common bits, binary AND will return != 0
    if ((playerMask & enemyMask) != 0) {
        // Contact!
    }

}

Ссылки: JGame, Платформа для Маленьких Java игр

22
задан Paul Peelen 19 January 2011 в 13:03
поделиться

1 ответ

Кнопки в настройке формы указывают, что вы собираетесь что-то сделать с формой; отправка, очистка, добавление файла и т. д. Если сделать кнопку отмены ссылкой, вы можете оставить ее в любое время без каких-либо последствий.

3
ответ дан 29 November 2019 в 04:36
поделиться