Senin, 16 Maret 2026

PYTHON - Tkinter - The Matrix Effects

 


# Efecto Matrix 

# @autor: Magno Efren

# Youtube: https://www.youtube.com/c/MagnoEfren


from tkinter import Frame, Tk, Canvas

from random import choice 


class Matrix(Frame):

def __init__(self, master):

super().__init__(master)


self.canvas = Canvas(master, bg= 'black')

self.canvas.place(relx=0, rely=0, relwidth=1, relheight=1)


self.velocidad = [i for i in range(0,30,5)]

self.pos = [i for i in range(-200,200,20)]

self.letters = []

self.green = 0

self.caracteres = [

                      "a", "k", "u", "u", "u", "И", "Ч",

                      "b", "l", "v", "v", "v", "Ѳ", "Р",

                      "c", "m", "w", "w", "w", "І", "С",

                      "d", "n", "x", "x", "x", "К", "Т",

                      "e", "o", "y", "y", "y", "Л", "Ѵ",

                      "f", "p", "z", "z", "z", "М", "Ф",

                      "g", "q", "1", "1", "1", "Н", "Х",

                      "h", "r", "2", "2", "2", "Ѯ", "Ѱ",

                      "i", "s", "3", "3", "3", "Ѻ", "Ѿ",

                      "j", "t", "4", "4", "4", "П", "Ц",

                ]


self.draw()

self.update()


def draw(self):

for x in range(0,1600,20):

y = choice(self.pos)

for j in range(0, choice([180,220,280]),20):

self.obj = self.canvas.create_text(20+x, -200+y+j, text= choice(self.caracteres),

fill = 'green2', font= ('Arial', 14))

self.letters.append(self.obj)

def update(self):

for letter in self.letters:

v = choice(self.velocidad)

self.green +=5

color = '#{:02x}{:02x}{:02x}'.format(0,self.green,0)

self.canvas.itemconfig(letter, fill=color)

self.canvas.move(letter, 0, v)

y = self.canvas.coords(self.obj)


if self.green >=250:

self.green = 0

if y[1] >=800:

self.draw()

if y[1]>= 1200:

self.letters.clear()

self.canvas.delete('all')

self.canvas.after(80, self.update)


if __name__ == '__main__':

root = Tk()

root.title('Matrix Animation')

root.config(bg= 'black')

root.attributes('-fullscreen', True)

app = Matrix(root)

app.mainloop()


Tidak ada komentar: