Takie demko ...

A może to tylko wąż zbożowy .... w potrawce
To forum jest pod patronatem Kubusia czyli forumowego węża patrolowego..
ODPOWIEDZ
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1547
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

Takie demko ...

Post autor: SunRiver »

Skoro już mnie Nef wywołał do tablicy ... To na początek coś prostego ,
Mam nadzieję że się wam podoba ...
  1.  
  2. import pygame
  3. import random
  4.  
  5. # Inicjalizacja Pygame
  6. pygame.init()
  7.  
  8. # Ustawienie rozmiaru ekranu
  9. screen_width = 800
  10. screen_height = 600
  11. screen = pygame.display.set_mode((screen_width, screen_height))
  12.  
  13. # Ustawienie tła
  14. background_color = (0, 0, 0)
  15. screen.fill(background_color)
  16.  
  17. # Utworzenie gwiazd
  18. num_stars = 80
  19. stars = []
  20. for i in range(num_stars):
  21.     x = random.randint(0, screen_width)
  22.     y = random.randint(0, screen_height)
  23.     size = random.randint(1, 3)
  24.     stars.append((x, y, size))
  25.  
  26. # Utworzenie obiektu czcionki
  27. font = pygame.font.SysFont("comicsansms", 72)
  28.  
  29. # Utworzenie listy kolorów dla napisu tęczowego
  30. rainbow_colors = [(255, 0, 0), (255, 165, 0), (255, 255, 0),
  31.                   (0, 128, 0), (0, 0, 255), (75, 0, 130), (238, 130, 238)]
  32.  
  33. # Utworzenie napisu
  34. text = font.render("Lothar TeaM", True, rainbow_colors[0])
  35.  
  36. # Pozycjonowanie napisu na środku ekranu
  37. text_rect = text.get_rect()
  38. text_rect.center = (screen_width // 2, screen_height // 2)
  39.  
  40. # Pętla animacji
  41. while True:
  42.     # Obsługa zdarzeń
  43.     for event in pygame.event.get():
  44.         if event.type == pygame.QUIT:
  45.             pygame.quit()
  46.             quit()
  47.  
  48.     # Aktualizacja koloru tekstu
  49.     current_color = rainbow_colors.pop(0)
  50.     rainbow_colors.append(current_color)
  51.     text = font.render("Lothar TeaM", True, current_color)
  52.  
  53.     # Aktualizacja pozycji gwiazd
  54.     for i in range(num_stars):
  55.         x, y, size = stars[i]
  56.         x -= size/2
  57.         if x < 0:
  58.             x = screen_width
  59.             y = random.randint(0, screen_height)
  60.         stars[i] = (x, y, size)
  61.  
  62.     # Rysowanie gwiazd
  63.     screen.fill(background_color)
  64.     for x, y, size in stars:
  65.         color = (255, 255, 255)
  66.         pygame.draw.circle(screen, color, (x, y), size)
  67.  
  68.     # Rysowanie napisu
  69.     screen.blit(text, text_rect)
  70.  
  71.     # Wyświetlenie zmian na ekranie
  72.     pygame.display.update()
  73.  
  74.     # Opóźnienie między kolejnymi klatkami animacji
  75.     pygame.time.delay(20)
  76.  
  77.  
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1547
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

Re: Takie demko ...

Post autor: SunRiver »

Może coś trudniejszego .... nie wiele , ale może też się spodoba :)
  1.  
  2. import pygame
  3. import math
  4. import random
  5.  
  6. pygame.init()
  7.  
  8. # Ustawienia okna
  9. size = (500, 500)
  10. screen = pygame.display.set_mode(size)
  11. pygame.display.set_caption("Demko 2")
  12.  
  13. # Kolory
  14. black = (0, 0, 0)
  15. white = (255, 255, 255)
  16. green = (0, 255, 0)
  17.  
  18. # Font
  19. font = pygame.font.Font(None, 36)
  20.  
  21. # Lista liter
  22. lettersy = ['*', 'L', 'o', 't', 'h', 'a', 'r', '*','T','E','A','M']
  23.  
  24. # Punkt centralny okręgu
  25. center_x = 250
  26. center_y = 250
  27.  
  28. # Promień okręgu
  29. radius = 200
  30.  
  31. # Kąt początkowy
  32. angle = 0
  33.  
  34. # Odległość między literami
  35. letter_spacing = 360 // len(lettersy)
  36.  
  37. # Lista gwiazd
  38. stars = []
  39. star_velocities = []
  40. for i in range(50):
  41.     x = random.randrange(0, size[0])
  42.     y = random.randrange(0, size[1])
  43.     vel_x = random.randrange(-2, 3)
  44.     vel_y = random.randrange(-2, 3)
  45.     stars.append([x, y])
  46.     star_velocities.append([vel_x, vel_y])
  47.  
  48. # Zmienna określająca, czy animacja jest zatrzymana
  49. paused = False
  50.  
  51. # Główna pętla programu
  52. done = False
  53. clock = pygame.time.Clock()
  54.  
  55. while not done:
  56.     # Zdarzenia
  57.     for event in pygame.event.get():
  58.         if event.type == pygame.QUIT:
  59.             done = True
  60.         elif event.type == pygame.MOUSEBUTTONDOWN:
  61.             # Zatrzymywanie i wznawianie animacji po kliknięciu na ekranie
  62.             paused = not paused
  63.  
  64.     # Rysowanie tła
  65.     screen.fill(black)
  66.  
  67.     # Rysowanie gwiazd
  68.     for i, star in enumerate(stars):
  69.         # Dodawanie prędkości do pozycji gwiazdy
  70.         star[0] += star_velocities[i][0]
  71.         star[1] += star_velocities[i][1]
  72.  
  73.         # Sprawdzanie kolizji z krawędziami okna i bum
  74.         if star[0] < 0 or star[0] >= size[0]:
  75.             star_velocities[i][0] = -star_velocities[i][0]
  76.         if star[1] < 0 or star[1] >= size[1]:
  77.             star_velocities[i][1] = -star_velocities[i][1]
  78.  
  79.         # Rysowanie gwiazdy
  80.         pygame.draw.circle(screen, white, star, 2)
  81.  
  82.     if not paused:
  83.         # Rysowanie liter
  84.         for i, letter in enumerate(lettersy):
  85.             # Obliczanie pozycji litery na okręgu
  86.             letter_angle = angle + i * letter_spacing
  87.             x = int(center_x + radius * math.cos(math.radians(letter_angle)))
  88.             y = int(center_y - radius * math.sin(math.radians(letter_angle)))
  89.  
  90.             # Rysowanie litery
  91.             text = font.render(letter, True, green)
  92.             rect = text.get_rect()
  93.             rect.center = (x, y)
  94.             screen.blit(text, rect)
  95.  
  96.         # Zwiększanie kąta o 1 stopień
  97.         angle += 1
  98.  
  99.     # Aktualizacja ekranu
  100.     pygame.display.flip()
  101.  
  102.     # Ograniczenie liczby klatek na sekundę
  103.     clock.tick(60)
  104.  
  105. # Wyjście z programu
  106. pygame.quit()
  107.  
ODPOWIEDZ

Wróć do „Python w plasterkach”