Pygame Show – App for presentations

Let’s start making an app for presentations with pygame

import pygame
import sys


'''
big_screeb_code
	palette         definition the colors used in the game 24.1.2021


'''

text_for_slides = """Educazione civica
La Costituzione
legge fondamentale dello Stato
Si trova al vertice #del sistema legislativo
Referendum del 2 giugno 1946:# si vota per scegliere: #Monarchia o Repubblica#Vince la Repubblica#
Si vota finalmente#a Suffragio universale # Votano tutti i cittadini maggiorenni#comprese le  donne
Al Sud la maggioranza vota:# monarchia#Al Nord votano:# Repubblica# ............ #Prevale il voto alla Repubblica
è composta da 139 articoli
1-12 principi fondamentali
1#L'Italia è una repubblica #democratica fondata sul #lavoro.##La sovranità appartiene#al popolo che la#esercita nelle forme#e nei limiti della#Costituzione.
""".splitlines()

pygame.init()
class Game:
	def __init__(self, text):
		self.screen = pygame.display.set_mode((1000,600), pygame.RESIZABLE)
		self.clock = pygame.time.Clock()
		self.title_font_size = 64
		self.font_init(text)
		self.slides_counter = 0
		self.mainloop()

	def increase_font(self):
		self.title_font_size += 1

	def mainloop(self):
		"This runs until you quit or escape"
		self.game = 1 # bool that if 1 the game goes on
		while self.game:
			for event in pygame.event.get():
				self.game = self.check_exit(event) # quit or escape
				self.keypressed(event)
			# self.update_screen()
			pygame.display.update()
			self.clock.tick(60)
		self.quit() # exit from the game

	def update_screen(self):
		self.screen.blit(self.title_surface, (30, 50))
		# self.fx_title_grow()

	def quit(self):
		"Exit from the game"
		pygame.quit()
		sys.exit()

	def check_exit(self, event):
		"Check if user presses quit or escape"
		quit = event.type == pygame.QUIT
		exit = event.type == pygame.KEYDOWN  and event.key == pygame.K_ESCAPE
		if quit or exit:
			self.game = 0
		return self.game

	def keypressed(self, event):
		"Makes the slides go on with right, back with left"
		if event.type == pygame.KEYDOWN:

			#                 RIGHT    KEY

			if event.key == pygame.K_RIGHT:
				self.screen.fill((0, 0, 0))
				if self.slides_counter < len(text_for_slides) - 1:
					self.slides_counter += 1
					print("RIGHT")


			#                 LEFT     KEY

			if event.key == pygame.K_LEFT:
				if self.slides_counter > 0:
					self.slides_counter -= 1
				self.screen.fill((0, 0, 0))
			
			if event.key == pygame.K_d:
				self.screen 
				self.screen.fill((0, 0, 0))

			self.font_init(text_for_slides[self.slides_counter])

			#     MOUSE WHEEL  ==>    INCREASE SIZE OF THE LETTERS / DECREASE

		if event.type == pygame.MOUSEBUTTONDOWN:
			if event.button == 4:
				self.title_font_size += 6
			else:
				self.title_font_size -= 6

			self.font_init(text_for_slides[self.slides_counter])

	def font_init(self, text):
		"Show text in different rows if there is a #"
		self.text = text
		self.title_font = pygame.font.SysFont("Arial", self.title_font_size)
		self.win_w, self.win_h = pygame.display.get_surface().get_size()
		self.title_surface = pygame.Surface((self.win_w, self.win_h))
		space = 0
		for row in text.split("#"):
			row = self.title_font.render(row, 0, (255, 255, 255))
			self.title_surface.blit(row, (0, 0 + space))
			space += self.title_font_size


		self.screen.blit(self.title_surface, (30, 50))


	def fx_title_grow(self):
		"FX: the title grows"
		if self.title_font_size < 100:
			if self.title_font_size % 3 == 0:
				self.title_surface = self.title_font.render(self.text, 0, pygame.Color("Coral"))
			else:
				self.title_surface = self.title_font.render(self.text, 0, pygame.Color("Black"))

			self.title_font_size += 5
			self.title_font = pygame.font.SysFont("Arial", self.title_font_size)
			# self.font_init()
		else:
			self.title_surface = self.title_font.render(self.text, 0, pygame.Color("White"))



Game("Usa le frecce per scorrere il testo")


A video will follow to explain the code.


Subscribe to the newsletter for updates
Tkinter templates

Avatar My youtube channel

Twitter: @pythonprogrammi - python_pygame

Claude's Games

Arkanoid
Platform 2d

1. Memory game

Videos

Speech recognition game

Pygame's Platform Game

Other Pygame's posts

Advertisement