Бумер Posted March 23, 2007 Report Share Posted March 23, 2007 Ну как вы помните (наверное...) программирую я подобие тетриса. Ну почти все сделал, только одна загвоздка осталась: линия у меня стирается, если собралось по vерт. диаg. или goriзонтали 4 кубика одинакового цвета. Ну в массиве я делаю так: все что выше (для gorizontali) опускаю на одну клетку вниз, то же и для vertikal. Ну с diag потруднее, но все равно на одну единицу опустить вниз в массиве можно. в массиве хранится код цвета кубика. Ну ладно, массив сделали. Но надо же еще и на экране стереть эту линию и опустить все вниз. Неужели обновлять весь экран по массиву??? можно вычислять координаты по индексу массива. Массив 20 х 20. Не будет ли прога тормозить, если сделать обновление по массиву? А может есть способ как это проще сделать???? Link to comment Share on other sites More sharing options...
neic Posted March 23, 2007 Report Share Posted March 23, 2007 Кроме как обновления, вроде бы в голову ничего не приходит. Тормозить не будет. Машина с 400 элементами должна без проблем справиться! Если это не <2 пня Link to comment Share on other sites More sharing options...
Тролль Posted March 23, 2007 Report Share Posted March 23, 2007 Бумер: Но надо же еще и на экране стереть эту линию и опустить все вниз. Неужели обновлять весь экран по массиву??? ... А может есть способ как это проще сделать???? Проще не будет, чем меньше будет мелькание, тем сложнее будет программа. Например, можно взять перед удалением строки в "стакане" остающуюся часть изображения в буфер процедурой GetImage и вывести ее снова ниже на одну строку "стакана" процедурой PutImage, но все равно координаты всех элементов для будущих проверок заполненности строк тебе пересчитывать придется. Есть и другие способы, но они еще сложнее, они основываются на подготовке изображения в буфере, как об этом уже сказал Darhazer. При этом часто еще используют синхронизацию с разверткой монитора. Но на хорошем компьютере мелькание и так должно быть не сильно заметно. Если хочешь об этом знать больше, читай описания способов работы со спрайтами. Но не думаю, чтобы к небольшому мельканию у тебя стали придираться, как я понимаю, работу со спрайтами вы не проходили. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now