Создание игры ПАЗЛ на Python + Pygame
Сегодня встретил приятеля, который устраивался на работу программистом. Ему задали пробное задание - создать программу "часы" или "Пазлы" . Программ по изображению часов на Python очень много, поэтому будем создавать игру - пазлы. Первоисточников и исходников на питоне не нашел , чему несказанно и обрадовался... Я думаю, что справлюсь без особых усилий. И так начнем с создания нужной картинки, а вернее способа разбития. Чтоб не нагружать программно наш комп картинку будем разбивать в фотошопе.Проделать эту операцию можно многими способами, я предпочитаю инструментом - раскройка.Подробное видео красивого разбития картинки https://www.youtube.com/watch?v=oLSl3u_wBfA
...
Читать дальше »
|
УРОК 11 Курсовая работа 4 курса
Самые распространенные задания средних курсов вузов есть создание игры с появляющимися объектами разного цвета и уничтожающиеся при соприкосновении или расположении рядом. За основу возмём такую задачу: на игровом поле в случайных местах появляются три разноцветных шара, при перемещении любого объекта на один шаг - появляются еще один шарик случайного цвета в случайных координатах и т. д..Задача собирать шарики по цвету в ряд - 3 одного цвета уничтожаются. На мой взгляд - это бредовая игра, но задание очень часто встречающееся... Попробуем его решить. Прежде всего нужно определиться что для создания подобного скрипта нам нужно?
1) Нарисовать поле с клеточками
...
Читать дальше »
|
ПЯТНАШКИ
И так полученные навыки и умения необходимо конвертировать в какую нибудь полезную вещь. Что мы умеем? Умеем рисовать клеточное поле, умеем перемещать по нему объекты, при чём по шагово и с учетом занятого и свободного пространства. Значит мы запросто напишем игру ПЯТНАШКИ.
Начнём с подбора пятнашек, находим понравившейся рисунок в нете и пишем на нем цифры в фотошопе, пятнашки должны быть квадратными
Начало кода стандартное, создаем игровое поле опираясь на ширину и высоту пятнашки (и учитываем промежутки). Затем создаём класс спрайт в котором определяем наши обьекты как прямоугольники , определяем их ширину и высоту и заносим в список. В классе задаем функцию активации пятнашки при клике на ней мышкой, функцию перемещения (если ей разрешено), функц
...
Читать дальше »
|
Перемещение нескольких объектов по клеточному полю.
В предыдущей части урока мы научились рисовать и перемещать по клеточкам один объект. Теперь усложняем задание - вводим несколько объектов и перемещаем их по полю. При перемещении мы должны учитывать, что объекты не должны занимать уже занятые клеточки( налазить друг на друга) и разрешение на перемещение определяется лкм.
Исходники для написания логических игр
И так, раз у нас уже несколько объектов, то я их как обычно сразу заношу в список, для проверки свободно или занято место куда я хочу переместить объект буду использовать двумерный список(изначально пустой).
Первым делом рождаем наши объекты , как экземпляры класса.
hero1 = Sp
...
Читать дальше »
|
Новая серия уроков по нахождению решений задач курсовых работ по программированию
Самые часто встречаемые задания на четвертых курсах универов - это программирование игры с появляющимися и исчезающими шариками по заданному алгоритму. Игры как таковые не представляют особого интереса у пользователей, но пользуются большой популярностью у преподавателей, так как их программирование позволяет охватить большой объём знаний языка программирования. Задания подобного рода достаточно сложны и их решения бесплатно в интернете практически не найти. Решением подобных задач никогда не занимался, поэтому приступаю к самой простой и надеюсь решить самые сложные.
УРОК 10 Перемещение объекта по клеточному полю.
...
Читать дальше »
|
УРОК 9. РАСЧЕТ СТОЛКНОВЕНИЙ БОЛЬШОГО КОЛИЧЕСТВА ОБЪЕКТОВ.
В предыдущем уроке было рассмотрено столкновение двух движущихся объектов и их изменение направления движения. При том наши объекты имели конкретные имена и по их именам(координатам спрайтов) мы и проверяли столкновения спрайтов. Теперь усложним задачу - используя известные нам по предыдущему уроку объекты при столкновении их будем порождать еще объект, при столкновении любых объектов (даже новых) будет появляться еще один объект, ну и соответственно будет присутствовать и их изменение направления движения
Исходн
...
Читать дальше »
|
Урок 8 Захват и отскок без методов pygame collidelist()
В предыдущем уроке мы рассматривали варианты захвата объектов мышкой и столкновения объектов. Варианты кодов были построены на встроенных методах библиотеки pygame -collidelist(). А именно, мы использовали специальный контейнер (grupe) для проверки взаимодействия спрайтов, но как показала практика способ прост и имеет несколько недостатков. Главный недостаток - лаг при столкновении движущихся объектов, они периодически "проникают" друг в друга не выполняя условие отскока. Поэтому сегодня рассматриваем коды ручной прописки захвата объе
...
Читать дальше »
|
Урок 7. Захват движущегося объекта по клику мышки и отпуск его при отпускании кнопки.
В показанных ранее примерах простых кодов для игр был пример перемещения объектов .Напомним смысл данных решений. Несколько элементов вводим в игру через генератор случайных координат, присваиваем все элементы списку класса Group (специальный класс библиотеки пигейм ). Вводим главный элемент, которым и будем перемещать объекты, присваиваем этому главному объекту координаты перемещения мышки и присваиваем его еще одному списку Group. С помощью специального метода проверяем столкновения двух списков и попавшие в пересечение спрайты перемещаем с главным объектом при удержании мышки.Полный пример кода представлен ниже ( картинки объектов замените своими при копировании ).
Примеры захватов и перемещени
...
Читать дальше »
|
Варианты оформления и реализации кнопок для меню
Если вы прошли предыдущие уроки и у вас возникло желание улучшить ваши разработки предлагаю варианты организации кнопок.
пример программы - сохраняем рисунки и музыку в туже папку, что и командный код и добавляем рисунки:
Исходники файлов для скачивания - Меню с Машей
 
...
Читать дальше »
|
Урок 5 Анализируем пиксели
материал взят с сайта kostyalamer.narod.ru
Понятие surface - поверхность, это некоторое виртуальное окно ( в отличие от screen, который всегда один, поверхностей может быть много ), с которым можно производить различные действия, а можно и загрузить ее в screen: screen.blit(surface,(0,0)) для последующего отображения на дисплее оператором pigame.display.flip().
Последний комментарий собс
...
Читать дальше »
| |