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

Videos

Speech recognition game

Pygame's Platform Game

Other Pygame's posts

Published by pythonprogramming

Started with basic on the spectrum, loved javascript in the 90ies and python in the 2000, now I am back with python, still making some javascript stuff when needed.