Сказать, на какой строке была эта ошибка, было бы неплохо, но я вижу, что ваша проблема в функции whenHit ()
Это относится к переменной 'self', только вы никогда не определяете эту переменную. Предположительно, вы хотите, чтобы эта функция действовала как метод 'ball', поэтому объявление функции должно использовать синтаксис двоеточия и выглядеть примерно так: ball: collision (event)
Обратите внимание, что в Corona есть два способа настройки прослушивателей событий. Это объясняется здесь в их документации: http://developer.anscamobile.com/content/events-and-listeners
А затем эта страница в их документации объясняет, как это относится к событиям столкновения:
http://developer.anscamobile.com/content/game-edition-collision-detection
Похоже, то, что вы пытаетесь сделать, это прослушиватель таблицы на шаре, в этом случае ваш вызов addEventListener должен быть ball: addEventListener ("collision", ball), а затем функция ball: collision (событие)
Другой метод, который они описывают, - это глобальная функция прослушивателя, которая затем использует event.object1 внутри функции для ссылки на объект, который столкнулся.