Python / Pygame
الذهاب إلى القناة على Telegram
>>> Инфо: ОБЩИЙ БОТ: @RockyGidraBOT ToS бота: @RockyToSbot Второй канал: @StudioRocky Инфо про меня: @LeafRocky Арты с Рокки: @RockyArtsLEAF Цитаты по RainWorld: @RalnW0rld _______ >>> Вп и Вз: Вп 50+ До завтра Вз 0+ _______ >>> Ваш Рокки: @Rocky_Leaf
إظهار المزيد14
المشتركون
لا توجد بيانات24 ساعات
-2017 أيام
-21430 أيام
أرشيف المشاركات
🩵🩵🩵🩵🩵🩵
🌟🌟🌟🌟🌟🌟🌟🌟
🌟🌟🌟🌟
🌟Теперь по традиции делаем основной цикл. Для начала в него добавляем переменные движения и вращения фигур. Движение изначально у нас 0, а фигуры не вращаются - значит False. Отображаем ваши картинки для фона игры, а также текст для счета очков и название. И под конец добавляем задержку, когда соберется полная линия в тетрисе из блоков🌟
start = True
while start:
#Переменная для движения и вращения фигур
dx, rotate = 0, False
sc.blit(bg, (0, 0)) #Отображате вашу картинку для игрового поля
sc.blit(game_sc, (20, 20))
game_sc.blit(game_bg, (0, 0)) #Размещаем поверхность игрового поля на основное окно
#Отрисовка текста
sc.blit(text_tetris, (400, 20))
sc.blit(text_score, (400, 200))
sc.blit(font.render(str(score), True, pygame.Color('white')), (400, 250))
#Задержка для полных линий
for i in range(lines):
pygame.time.wait(200)
❤️❤️❤️❤️❤️❤️❤️❤️
#Python
#Pygame
#ОсновнойЦикл@PythonPygame
🤩🤩🤩🤩🤩🩵🩵🩵🩵🩵🩵
🔠🔠🔠🔠🔠🔠🔠
🔠🔠🔠🔠
✈️Чтобы в канале были не только боты, выложу сегодня код для тетриса. Сразу после переменных создаем функцию def и делаем границы поля. Даю для тетриса вот такие маленькие части кода, чтобы все было понятно)✈️
#Делаем границы поля
def check_borders():
if figure[i].x < 0 or figure[i].x > W - 1:
return False
#Будем возвращать ложное значение, когда фигура достигнет дна, а также если в игровом поле уже лежит другая фигура
elif figure[i].y > H - 1 or field[figure[i].y][figure[i].x]:
return False
return True
🩷🩷🩷🩷🩷🩷🩷🩷
#Python
#Pygame
#ГраницыТетрис@PythonPygame
🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩
🔖Сегодня я сделала обновление ботов. Теперь они должны быть умнее и не только говорить, но и следить за действиями. Я им дала свободу слова от системного промта🔖
❗️Если будут какие-то ошибки в биографии, говорите! Я буду рада вашим отзывам!🦖
🏃♂️ Галерея ботов
🤍🤍🤍🤍🤍🤍🤍🤍🤍🤍
➖➖➖➖➖➖➖
🔠юбая роль, хорошо прописанная в фандоме - 25⭐️
🔠орошо прописанный персонаж из фандома, но имеющий психические проблемы - 50⭐️
🔠юбая роль, плохо прописанная в фандоме - 50⭐️
🔠еадекватный персонаж из любого фандома - 100⭐️
➖➖➖➖➖➖➖
🔠ваш адекватный персонаж - 100⭐️
🔠ваш персонаж, который имеет серьезные психологические проблемы (или что-то в этом духе) - 150⭐️
🔠величение дедлайна - +15⭐️
🐾 Для покупки бота писать мне: @Rocky_Leaf
🩵🩵🩵🩵🩵🩵
❗️Ура, вы этого дождались! (А может кто-то и не ждал). Начинаем делать игру Тетрис на Pygame! Для начала традиционно создаем все переменные, которые нам потребуются. Здесь будут: FPS, само игровое поле, координаты всех фигур, сетка, текст, очки и тд. Теперь этот коды с Тетрисом я буду добавлять в это сообщение https://t.me/PythonPygame/180 ❗️
import pygame
from copy import deepcopy #Импортируем copy для копирования фигур
from random import choice, randrange #Импортируем random для рандомного появления фигур на поле
pygame.init()
clock = pygame.time.Clock()
W, H = 9, 19 #Создаем игровое поле на 10, 20 плиток
TILE = 39 #Задаем размер плитки
GAME_RES = W * TILE, H * TILE
RES = 600, 800 #Расширим область рабочего окна
FPS = 60 #Кол-во кадров в игре
sc = pygame.display.set_mode(RES) #А игровое поле будет на отдельной поверхности
game_sc = pygame.Surface(GAME_RES)
#Наносим на поле сетку
grid = [pygame.Rect(x * TILE, y * TILE, TILE, TILE) for x in range(W) for y in range(H)]
#Координаты всех фигур
figures_pos = [[(-1, 0), (-2, 0), (0, 0), (1, 0)],
[(0, -1), (-1, -1), (-1, 0), (0, 0)],
[(-1, 0), (-1, 1), (0, 0), (0, -1)],
[(0, 0), (-1, 0), (0, 1), (-1, -1)],
[(0, 0), (0, -1), (0, 1), (-1, -1)],
[(0, 0), (0, -1), (0, 1), (-1, -1)],
[(0, 0), (0, -1), (0, 1), (-1, 0)]]
#На основе этого списка сформируем список экземпляров класса Rect, из которого мы будем брать наши фигуры
figures = [[pygame.Rect(x + W // 2, y + 1, 1, 1) for x, y in fig_pos] for fig_pos in figures_pos]
#Экземпляр для отрисовки наших фигур
figure_rect = pygame.Rect(0, 0, TILE - 2, TILE -2)
#Создадим список, заполненный нулями, это будет карта игрового поля, на котором будем помещать положение упавших фигур
field = [[0 for i in range(W)] for j in range(H)]
#Переменные, которые отвечают за плавность падения
anim_count, anim_speed, anim_limit = 0, 60, 2000
#Также создадим переменную для текущей фигуры
figure = deepcopy(choice(figures))
bg = pygame.image.load('paporot.jpg') #Добавляете вашу картинку
game_bg = pygame.image.load('dragon.jpg') #Добавляете вашу картинку
font = pygame.font.SysFont('Arial', 50, bold=True)
text_tetris = font.render('Тетрис', True, pygame.Color('darkorange'))
text_score = font.render('Очки:', True, pygame.Color('green'))
#Раскрашиваем наши фигуры
get_color = lambda : (randrange(30, 250), randrange(30, 250), randrange(30, 250))
color = get_color()
#Переменная для отображения набранных очков
score, lines = 0, 0
scores = {0: 0, 1: 100, 2: 300, 3: 700, 4: 1500}
💜💜💜💜💜💜💜💜
#Python
#Pygame
#ПеременныеТетрис@PythonPygame
🤩🤩🤩🤩🤩🔠🔠🔠🔠🔠🔠
🌟Все переменные в игре Тетрис: https://t.me/PythonPygame/181
🌟Границы поля в игре: #ГраницыТетрис@PythonPygame
🌟Основной цикл: #ОсновнойЦикл@PythonPygame
🌟Управление по клавишам: #УправлениеФигур@PythonPygame
🌟Само движение фигур: #ДвижениеФигур@PythonPygame
🌟Лимит скорости падения фигур: #ТетрисЛимит@PythonPygame
🌟Вращение фигур: #ТетрисВращение@PythonPygame
🌟Собирание линий: #СобраныеЛинии@PythonPygame
🌟Конец тетриса и отрисовка: #КонецОтрисовка@PythonPygame
🤩Ой, а еще я забыла выложить Пепелицу. Она идет вместе со вчерашними. Кстати, мне больше всего понравилось с ней разговаривать о своих чувствах. Она мне прям помогла от депрессии. Можете тоже попробовать🤩
🏃♂️ Галерея ботов
+7
🐍Всем доброго вечера. Сейчас выложила вам таких ботов в моей галерее. Здесь у нас: Шедоу, Ураган, Тейлз, Найн, Эми Роуз, Львиносвет, Голубка, Быстролап🐍
🐍Также я работаю над ошибками ботов, по повторению, но это оказалось самой непростой задачей, поэтому я не знаю, когда ее решу. А на счет Google Cloud, то на него я скорее всего не смогу поставить ботов, потому что у меня нет VPN :( 🐍
🐍Если бот будет повторять, нажимайте на кнопку сброса памяти пока что, скоро решу эту проблему, обещаю🐍
🐍А пока можете пообщаться с новенькими, я думаю вам будет интересно :)🐍
🏃♂️ Галерея ботов
🔷🔷🔷🔷🔷🔷🔷🔷
🔷🔷🔷🔷🔷🔷🔷🔷🔷
🐺 Перед тетрисом мы сделаем простое движение персонажа вправо и влево. Теперь объект может двигаться при зажатии клавиши! Сначала будет так, но потом мы добавим линии и персонаж уже будет двигаться по рельефу. Если у вас нет импорта pygame и ваших объектов, можете поискать информацию в моей навигации⭐️
#Ваши объекты, импорт и инициализация Pygame
def main():
y_sonic = 0 #Начальная позиция по оси y
x_sonic = 200 #Начальная позиция по оси x
speed = 1 #Начальная скорость
move = 'stop' #Начальное движение у нас остановлено
start = True
while start:
screen.blit(bg, (0, 0)) #Отрисовываем фон
for event in pygame.event.get():
if event.type == pygame.QUIT:
start = False
pygame.quit()
stop = pygame.key.get_just_released() #Отслеживаем остановку движения
keys = pygame.key.get_just_pressed() #Отслеживаем движение персонажа по клавишам
if keys[pygame.K_LEFT]:
move = 'left' # Добавляем движение влево
elif keys[pygame.K_RIGHT]:
move = 'right' #Добавляем движение вправо
#Обрабатываем остановку
if stop[pygame.K_RIGHT] or stop[pygame.K_LEFT]:
move = 'stop'
#Обрабатываем само движение вправо
if move == 'right':
x_sonic += speed #Увеличиваем позицию персонажа вправо
elif move == 'left':
x_sonic -= speed #Уменьшаем позицию персонажа влево
#Отрисовка экрана, ваших объектов и выход из Pygame
💦💦💦💦💦💦💦💦
#Python
#Pygame
#ДвижениеПерса@PythonPygame
🤩🤩🤩🤩🤩▪️▪️▪️▪️▪️▪️▪️▪️▪️▪️
▪️▪️▪️▪️▪️▪️▪️▪️▪️
😊Сегодня мы создадим консольную мини-игру "Правда или Действие". Она будет похожа на ваш рандомайзер вопросов, которых вы сами напишите. Для начала в терминал мы вводим строку
pip install random если у вас нет этой библиотеки. А так, игра очень простая) Удачи в создании!😊
import random
#Список вопросов
truth_questions = [
'Какая твоя самая странная привычка?',
'Что бы ты сделал(а), если бы окзалася(ась) невидимкой на один день?',
'Опиши самый неловкий момент в твоей жизни'
]
#Список заданий
dare_tasks = [
'Изобрази известного персонажа, пока другие не угадают',
'Придумай рифму к имени каждого игрока за 30 секунд',
'Прокукарекай в окно 3 раза'
]
print('Правда или Действие') #Отображаес название игры
while True:
print('=======')
#Запускаем рандомный выбор вопросов клавишей ENTER
exit = input('Нажми ENTER, чтобы крутить барабан...')
#Выход из игры по нажатию клавиши q на клавиатуре
if exit == 'q':
break #Завершаем цикл while
choice = random.choice(['Правда', 'Действие'])
print(choice)
if choice == 'Правда':
question = random.choice(truth_questions)
print('Вопрос:')
print(question)
else:
task = random.choice(dare_tasks)
print('Задание:')
print(task)
play_again = input('Сыграем еще раз?(да/нет'))
#Если пользователь вводит 'нет', то вся игра завершается
if play_again == 'нет':
print('Спасибо за игру')
break
💚💚💚💚💚💚💚💚
#Python
#Random
#ПравдаДействие@PythonPygame
🤩🤩🤩🤩🤩🔠🔠🔠🔠🔠🔠
🌟 Добавляем переменные в игру: #ЗмейкаПодготовка@PythonPygame
🌟 Основной цикл и отображение: #ЗмейкаОсновнойЦикл@PythonPygame
🌟 Переменные движение и поедание яблока: #ПеременныеДвижения@PythonPygame
🌟 Проигрыш и отрисовка Game Over: #Проигрыш@PythonPygame
🌟 Движение змейки по клавишам:
#ЗмейкаКонец@PythonPygame
🔠🔠🔠🔠🔠
🌟 Создание окна: #СозданиеОкна@PythonPygame
🌟 Добавление текста: #ТекстPyxel@PythonPygame
🌟 Название окна: #НазваниеОкна@PythonPygame
🌟 Добавление картинки: #КартинкиPyxel@PythonPygame
🔠🔠🔠🔠🔠🔠
🌟Python не находит модуль moviepy.editor: #ОшибкаMoviepy@PythonPygame
🌟Callback_data при разработки бота: что будет, если не писать этот параметр: #CallbackData@PythonPygame
🌟Proxy Error на хостинге PythonAnyWhere: #ProxyОшибка@PythonPygame
🌟Метод tick не может быть вызван на объекте типа int: #ОшибкаЧасовFps@PythonPygame
🔠🔠🔠
🌟Создание бота в тг: #НачалоБот@PythonPygame
🌟Загрузка команды /start: #КомандаStart@PythonPygame
🌟Создание бота через aiogram: #AiogramStart@PythonPygame
🌟Кнопки в боте под сообщением: #КнопкиБота@PythonPygame
🌟Меню кнопок: #МенюКнопок@PythonPygame
🌟Обработка слова: #ОбработкаСлова@PythonPygame
🔠🔠🔠🔠🔠🔠🔠🔠
🔠🔠🔠🔠🔠🔠🔠🔠
🌟Отображение Gif: #Гифки@PythonPygame
🌟Создание класса кнопки:
#КлассКнопки@PythonPygame
🌟Отображение самой кнопки: #Кнопка@PythonPygame
🌟Создание фона к игре: #Фон@PythonPygame
🌟Добавление картинки: #Картинка@PythonPygame
🌟Добавление видео: #ВидеоБезЦикла@PythonPygame
🔠🔠🔠🔠🔠🔠
🌟Импорт и инициализация: #Начало@PythonPygame
🌟Создание окна: #Окно@PythonPygame
🌟Передвижение кубика: #Передвижение@PythonPygame
🌟Иконка к окну: #Иконка@PythonPygame
🌟Функция def: #ФункцияDef@PythonPygame
🌟Добавление музыки: #Музыка@PythonPygame
🌟Полноэкранный режим с помощью клавиши F: #FullscreenКлавиша@PythonPygame
🌟Полноэкранный режим с помощью кнопки: #FullscreenКнопка@PythonPygame
🌟Движение персонажа при зажатии клавиши: #ДвижениеПерса@PythonPygame
Я начинаю менять навигацию нашего канала, потому что там прем-эмодзи не вмещаются. Кстати, сейчас я выложу код на консольную мини-игру. Сейчас не удивляйтесь, я перемещу сообщения из поста "Хештеги" сюда, как отдельный пост.
🤍🤍🤍🤍🤍🤍
💎💎💎💎💎💎💎💎
💎💎💎💎💎💎
💎Вот и наступил конец созданию нашей игры "Змейка". Сразу под
pygame.display.flip(), который был в предыдущем коде, мы создаем отдельный цикл и for и добавляем в него движения нашей змейки по клавиатурным кнопкам: A, S, D, W. Надеюсь, у вас получилось создать змейку по моему тутору, но если Python выдает какие-то ошибки, то можете писать в комментарии, что не так и прислать часть или весь код. Спасибо за внимание! Дальше будет тетрис)))🔥
pygame.display.flip() #Это было написано в предыдущем коде
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
#Обрабатываем нажатие клавиш для движения змейки
key = pygame.key.get_pressed()
if key[pygame.K_w] and dirs['W']:
dx, dy = 0, -1
dirs = {'W': True, 'S': False, 'A': True, 'D': True} #Чтобы нельзя было двигаться назад, когда змея идет вперед
if key[pygame.K_s] and dirs['S']:
dx, dy = 0, 1
dirs = {'W': False, 'S': True, 'A': True, 'D': True} #Здесь аналогично
if key[pygame.K_a] and dirs['A']:
dx, dy = -1, 0
dirs = {'W': True, 'S': True, 'A': True, 'D': False}
if key[pygame.K_d] and dirs['D']:
dx, dy = 1, 0
dirs = {'W': True, 'S': True, 'A': False, 'D': True}
🧡🧡🧡🧡🧡🧡🧡🧡
#Python
#Pygame
#ЗмейкаКонец@PythonPygame
🤩🤩🤩🤩🤩🤍🤍🤍🤍🤍🤍
🔠🔠🔠🔠🔠🔠🔠🔠
🟩Давайте теперь пропишем, что будет происходить, когда мы проиграли. Например, когда съели себя или вышли за пределы поля. Отобразим наш текст и зальем его оранжевым цветом. И прописываем в цикл
while закрытие окна🔶
#Когда мы проиграли
if x < 0 or x > RES - SIZE or y < 0 or y > RES - SIZE or len(snake) != len(set(snake)):
#Когда вышли за пределы поля игры или съели себя
while True:
render_end = font_end.render('GAME OVER', 1, pygame.Color('orange')) #Задаем цвет текста GAME OVER
sc.blit(render_end, (RES // 2 - 200, RES // 3)) #Отображаем текст
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
pygame.display.flip()
💛💛💛💛💛💛💛💛
#Python
#Pygame
#Проигрыш@PythonPygame
🤩🤩🤩🤩🤩🤍🤍🤍🤍🤍🤍
🔠🔠🔠🔠🔠🔠🔠🔠🔠🔠
🔠🔠🔠🔠🔠🔠🔠🔠
🔥А вы знали, что это уже почти конец составления игры "Змейка"?) Вот, даю вам по таким маленьким частям. Сразу после отрисовки, добавляем переменные движения нашей змейки, а также поедание яблока, и что за это будет🦊
#Движение змейки
x += dx * SIZE
y += dy * SIZE
snake.append((x, y)) #Каждый шаг змейки добавляем в список координат
snake = snake[-length:] #Чтобы змейка сама не удлинялась
#Поедание яблока
if snake[-1] == apple:
apple = randrange(0, RES, SIZE), randrange(0, RES, SIZE) #Заново размещаем яблоко
length += 1 #Увеличиваем змейку
score += 1 #Добавляем одно очко, когда съели яблоко
fps += 1
🤎🤎🤎🤎🤎🤎🤎🤎
#Python
#Pygame
#ПеременныеДвижения@PythonPygame
🤩🤩🤩🤩🤩