Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Paparkan kepingan salji yang jatuh menggunakan perpustakaan arked dalam Python

Paparkan kepingan salji yang jatuh menggunakan perpustakaan arked dalam Python

PHPz
PHPzke hadapan
2023-08-20 12:21:34601semak imbas

Pustaka arked ialah perpustakaan Python untuk mencipta permainan video dan simulasi gaya arked 2D. Jika anda ingin menggunakan perpustakaan arked untuk mencipta kesan salji, anda boleh mencipta tetingkap arked baharu dan menetapkan warna latar belakang biru tua untuk mewakili langit malam.

Menggunakan perpustakaan arked dalam Python

Perpustakaan arked ialah perpustakaan Python yang digunakan untuk membangunkan permainan dan aplikasi 2D. Ia menyediakan antara muka yang mudah untuk mencipta grafik dan animasi interaktif Dalam artikel ini, kami akan menggunakan perpustakaan arked untuk mencipta animasi salji yang ringkas

Untuk bermula, kami perlu memasang perpustakaan arked Anda boleh melakukan ini dengan menjalankan perintah berikut dalam terminal atau gesaan arahan anda −

pip install arcade

Setelah pemasangan selesai, kami boleh mula menulis kod kami Berikut ialah program ringkas yang memaparkan salji −

import arcade
import random

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
SNOWFLAKE_SIZE = 64

class Snowflake:
   def __init__(self):
      self.x = random.randrange(SCREEN_WIDTH)
      self.y = SCREEN_HEIGHT + SNOWFLAKE_SIZE
      self.speed = random.randrange(5, 20)
      self.angle = random.uniform(0, 2 * 3.1415)
        
   def update(self):
      self.x += self.speed * math.sin(self.angle)
      self.y -= self.speed * math.cos(self.angle)
      if self.y < -SNOWFLAKE_SIZE:
         self.y = SCREEN_HEIGHT + SNOWFLAKE_SIZE
         self.x = random.randrange(SCREEN_WIDTH)
        
   def draw(self):
      arcade.draw_circle_filled(self.x, self.y, SNOWFLAKE_SIZE, arcade.color.WHITE)
        
class Snowfall(arcade.Window):
   def __init__(self, width, height):
      super().__init__(width, height, "Snowfall")
      arcade.set_background_color(arcade.color.BLUE_GRAY)
      self.snowflakes = []
      for i in range(100):
         self.snowflakes.append(Snowflake())
            
   def on_draw(self):
      arcade.start_render()
      for snowflake in self.snowflakes:
         snowflake.draw()
            
   def on_update(self, delta_time):
      for snowflake in self.snowflakes:
         snowflake.update()

if __name__ == "__main__":
   window = Snowfall(SCREEN_WIDTH, SCREEN_HEIGHT)
   arcade.run()

Output

Paparkan kepingan salji yang jatuh menggunakan perpustakaan arked dalam Python

Seterusnya, anda boleh membuat senarai kepingan salji, di mana setiap kepingan salji diwakili sebagai tuple nilai (x, y, saiz) Nilai x dan y mewakili kedudukan kepingan salji pada skrin, dan nilai saiz mewakili saiz kepingan salji .

Pada setiap bingkai gelung permainan, anda boleh mengemas kini kedudukan setiap kepingan salji dengan menambahkan jumlah rawak yang kecil pada nilai-ynya. Anda juga boleh menyemak sama ada kepingan salji telah jatuh dari bahagian bawah skrin, dan jika ya, tetapkan semula kedudukannya kepada nilai x rawak di bahagian atas skrin.

Akhir sekali, anda boleh melukis setiap kepingan salji pada skrin menggunakan fungsi arked.draw_circle_filled(), yang menerima kedudukan (x, y) dan nilai saiz sebagai parameter.

Mari kita semak kod langkah demi langkah.

Pertama, kami mengimport perpustakaan arked dan modul rawak, yang akan kami gunakan untuk menjana nilai rawak untuk kepingan salji Kami juga menentukan beberapa pemalar: SCREEN_WIDTH dan SCREEN_HEIGHT, yang menentukan saiz tetingkap kami, dan SNOWFLAKE_SIZE, yang. menentukan saiz kepingan salji kami.

Seterusnya, kami mentakrifkan kelas Kepingan salji ini mewakili satu kepingan salji Dalam pembina, kami menjana nilai rawak untuk kedudukan, kelajuan dan sudut kepingan salji () mengemas kini kedudukan kepingan salji itu sudut. Jika kepingan salji jatuh dari bahagian bawah skrin, kami menetapkan semula kedudukannya ke bahagian atas skrin Kaedah draw() melukis kepingan salji pada skrin menggunakan fungsi arked.draw_circle_filled().

Selepas itu, kami mentakrifkan kelas Snowfall senarai kepingan salji dan panggil kaedah draw() setiap kepingan salji Dalam kaedah on_update(), kami mengulangi senarai kepingan salji dan memanggil kaedah kemas kini() setiap kepingan salji.

.

Akhir sekali, kami mencipta contoh kelas Snowfall dan memanggil arcade.run() untuk memulakan aplikasi.

Kod ini mencipta kelas

Snowflake untuk mewakili setiap kepingan salji, dan kelas SnowfallGame untuk mengurus gelung permainan dan melukis kepingan salji pada skrin Kaedah on_draw() dipanggil setiap bingkai untuk melukis kepingan salji, dan kaedah on_update() dipanggil setiap bingkai untuk mengemas kini kedudukan kepingan salji Fungsi arcade.run() memulakan gelung permainan dan memastikan tetingkap terbuka sehingga pengguna menutupnya..

Itu sahaja! Apabila anda menjalankan program, anda sepatutnya melihat tetingkap dengan kepingan salji jatuh pada skrin.

Selain itu, Python menyediakan fungsi lukisan penyu, dan kita boleh menggunakan lukisan penyu untuk mencapai kesan kepingan salji yang ditunjukkan di bawah.

Paparkan kepingan salji yang jatuh menggunakan perpustakaan arked dalam Python

Atas ialah kandungan terperinci Paparkan kepingan salji yang jatuh menggunakan perpustakaan arked dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam