ты наверно рисуешь поле загружая каждую картинку из ресурса, отдельно.
нужно все элементы одной картинкой загрузить в память, а потом уж рисуй.
repaint нужно вызывать после всех изменений экрана. можно перерисовывать только часть экрана, если использовать библиотеку, например мою
можно еще воспользоваться GameAPI, но проверить что быстрее и оптимальнее.