Minggu 1: Pengenalan kepada Asas Python dan Pembangunan Permainan
Kelas 1: Asas Python dan Persediaan Pygame
-
Topik:
- Sintaks Python dan konsep pengaturcaraan asas (pembolehubah, jenis data, gelung, fungsi).
- Memasang dan menyediakan Pygame.
- Pengenalan kepada gelung permainan dan mekanik permainan asas.
-
Projek Mini:
-
Apl Lukisan Mudah: Cipta apl asas yang membolehkan pengguna melukis pada skrin menggunakan tetikus.
-
Latihan:
- Ubah suai apl lukisan untuk menggunakan warna dan saiz berus yang berbeza.
- Buat bentuk (seperti bulatan atau segi empat tepat) menggunakan input papan kekunci.
Kelas 2: Memahami Komponen Permainan
-
Topik:
- Sprite dan permukaan dalam Pygame.
- Mengendalikan input pengguna (acara papan kekunci dan tetikus).
- Pengesanan perlanggaran asas.
-
Projek Mini:
-
Tangkap Bola: Permainan di mana bola jatuh dari bahagian atas skrin dan pemain mesti menangkapnya dengan dayung.
-
Latihan:
- Tambahkan markah pada permainan berdasarkan bilangan bola yang ditangkap oleh pemain.
- Tingkatkan kelajuan bola yang jatuh dari semasa ke semasa.
Minggu 2: Membina Permainan Interaktif
Kelas 3: Fizik dan Pergerakan Permainan
-
Topik:
- Menggerakkan objek dengan halaju dan pecutan.
- Simulasi graviti.
- Melantun dan memantulkan objek.
-
Projek Mini:
-
Bola Melantun: Buat permainan di mana bola melantun di sekeliling skrin, menukar arah apabila ia mengenai dinding.
-
Latihan:
- Tambahkan halangan yang boleh dilanggar bola.
- Jadikan bola berubah warna apabila terkena permukaan yang berbeza.
Kelas 4: Bekerja dengan Bunyi dan Muzik
-
Topik:
- Menambah kesan bunyi dan muzik latar belakang pada permainan.
- Mengawal kelantangan dan main balik.
- Mencetuskan bunyi berdasarkan acara permainan.
-
Projek Mini:
-
Permainan Memori Bunyi: Permainan di mana pemain perlu mengulangi urutan bunyi dalam susunan yang betul.
-
Latihan:
- Tingkatkan kesukaran dengan menambahkan lebih banyak bunyi pada urutan.
- Benarkan pemain melaraskan kelantangan semasa permainan.
Minggu 3: Mekanik Permainan Lanjutan
Kelas 5: Keadaan dan Tahap Permainan
-
Topik:
- Menguruskan keadaan permainan yang berbeza (cth., menu, bermain, tamat permainan).
- Mencipta dan bertukar antara tahap.
- Menyimpan dan memuatkan kemajuan permainan.
-
Projek Mini:
-
Permainan Platformer (Bahagian 1): Mula membina permainan platformer yang mudah dengan pemain yang boleh melompat antara platform.
-
Latihan:
- Tambahkan pelbagai jenis platform (cth., platform bergerak).
- Laksanakan sistem pusat pemeriksaan untuk menyelamatkan kemajuan.
Kelas 6: AI dan Tingkah Laku Musuh
-
Topik:
- AI asas untuk pergerakan dan tingkah laku musuh.
- Pencarian laluan dan membuat keputusan untuk musuh.
- Mencipta permainan yang mencabar dengan AI dinamik.
-
Projek Mini:
-
Permainan Platformer (Bahagian 2): Tambahkan musuh pada permainan platformer dengan gelagat AI asas.
-
Latihan:
- Buat pelbagai jenis musuh dengan kelakuan yang berbeza-beza.
- Tambahkan kuasa yang mempengaruhi kedua-dua pemain dan musuh.
Minggu 4: Menggilap dan Projek Akhir
Kelas 7: Pengoptimuman Permainan dan Nyahpepijat
-
Topik:
- Mengoptimumkan prestasi permainan (cth., mengendalikan sejumlah besar sprite).
- Menyahpepijat isu biasa dalam pembangunan permainan.
- Menggilap permainan dengan animasi dan kesan khas.
-
Projek Mini:
-
Penggilapan Permainan Akhir: Perhalusi permainan platformer dengan menambahkan animasi, meningkatkan prestasi dan membetulkan pepijat.
-
Latihan:
- Melaksanakan sistem zarah untuk kesan khas.
- Optimumkan permainan untuk berjalan lancar pada peranti kelas bawah.
Kelas 8: Pembentangan Projek Akhir dan Penggulungan
-
Topik:
- Semakan konsep utama yang dipelajari sepanjang kursus.
- Pembentangan projek akhir dan sesi maklum balas.
- Petua untuk pembelajaran dan penerokaan lanjut dalam pembangunan permainan.
-
Projek Akhir:
-
Permainan Platformer Lengkap: Pelajar akan membentangkan versi terakhir permainan platformer mereka, menggabungkan semua ciri dan teknik yang dipelajari.
-
Latihan:
- Tambahkan skrin tajuk dan kredit tamat pada permainan.
- Percubaan dengan menambahkan ciri atau mekanik baharu pada permainan.
Minggu 1: Pengenalan kepada Asas Python dan Pembangunan Permainan
Kelas 1: Asas Python dan Persediaan Pygame
1.1 Asas Python
1.1.1 Pembolehubah dan Jenis Data
-
Pembolehubah ialah bekas untuk menyimpan nilai data.
-
Jenis data termasuk integer (int), nombor titik terapung (float), rentetan (str) dan boolean (bool).
Contoh:
# Integer
score = 10
# Float
player_speed = 2.5
# String
player_name = "Chukwudi"
# Boolean
game_over = False
1.1.2 Gelung
-
Gelung digunakan untuk mengulang blok kod beberapa kali.
- Gelung biasa termasuk untuk gelung dan gelung sambil.
Contoh:
# For loop
for i in range(5):
print("Hello", i)
# While loop
countdown = 5
while countdown > 0:
print("Countdown:", countdown)
countdown -= 1
1.1.3 Fungsi
-
Fungsi ialah blok kod boleh guna semula yang melaksanakan tugas tertentu.
Contoh:
def greet_player(name):
print("Welcome,", name)
greet_player(player_name)
Persediaan 1.2 Pygame
1.2.1 Memasang Pygame
- Untuk memasang Pygame, gunakan arahan berikut:
pip install pygame
1.2.2 Memulakan Pygame
-
Pygame ialah perpustakaan Python yang digunakan untuk mencipta permainan.
- Untuk memulakan Pygame dan mencipta tetingkap permainan, gunakan kod berikut:
Contoh:
import pygame
# Initialize Pygame
pygame.init()
# Create a game window
screen = pygame.display.set_mode((800, 600))
# Set window title
pygame.display.set_caption("My First Game")
# Main game loop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Quit Pygame
pygame.quit()
Projek Mini 1.3: Apl Lukisan Mudah
Matlamat: Cipta apl asas yang membolehkan pengguna melukis pada skrin menggunakan tetikus.
1.3.1 Contoh Kod
import pygame
# Initialize Pygame
pygame.init()
# Set up the screen
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Drawing App")
# Colors
white = (255, 255, 255)
black = (0, 0, 0)
# Set background color
screen.fill(white)
# Main loop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEMOTION:
if event.buttons[0]: # Left mouse button is pressed
pygame.draw.circle(screen, black, event.pos, 5)
pygame.display.flip()
pygame.quit()
1.4 Senaman
-
Ubah suai Apl Lukisan:
- Tukar warna berus kepada merah.
- Benarkan pengguna menogol antara saiz berus yang berbeza menggunakan papan kekunci.
-
Buat Bentuk:
- Gunakan input papan kekunci untuk melukis bentuk yang berbeza seperti bulatan dan segi empat tepat pada skrin.
Kelas 2: Memahami Komponen Permainan
2.1 Sprite dan Permukaan dalam Pygame
2.1.1 Sprite
-
Sprites ialah objek dalam permainan, seperti watak atau item. Mereka boleh bergerak, berinteraksi dan mempunyai sifat mereka sendiri.
2.1.2 Permukaan
-
Permukaan ialah imej atau bahagian skrin yang boleh dimanipulasi.
Contoh:
# Load an image and create a sprite
player_image = pygame.image.load("player.png")
player_rect = player_image.get_rect()
# Draw the sprite on the screen
screen.blit(player_image, player_rect)
2.2 Mengendalikan Input Pengguna
2.2.1 Input Papan Kekunci
- Mengesan penekanan kekunci boleh dilakukan menggunakan pygame.event dan pygame.key.get_pressed().
Contoh:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
print("Left arrow key pressed")
2.2.2 Input Tetikus
- Mengesan pergerakan dan klik tetikus adalah serupa dengan input papan kekunci.
Contoh:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
print("Mouse button clicked at", event.pos)
2.3 Pengesanan Perlanggaran Asas
2.3.1 Perlanggaran Segiempat Segiempat
- Perlanggaran antara objek selalunya dikesan menggunakan segi empat tepat.
Contoh:
# Check if two rectangles overlap
if player_rect.colliderect(other_rect):
print("Collision detected!")
2.4 Mini Project: Catch the Ball
Goal: Create a game where a ball falls from the top of the screen, and the player must catch it with a paddle.
2.4.1 Code Example
import pygame
import random
# Initialize Pygame
pygame.init()
# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Catch the Ball")
# Colors
white = (255, 255, 255)
black = (0, 0, 0)
# Player (Paddle)
paddle = pygame.Rect(350, 550, 100, 10)
# Ball
ball = pygame.Rect(random.randint(0, 750), 0, 50, 50)
ball_speed = 5
# Main game loop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Move paddle with arrow keys
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and paddle.left > 0:
paddle.move_ip(-5, 0)
if keys[pygame.K_RIGHT] and paddle.right < 800:
paddle.move_ip(5, 0)
# Move ball down
ball.move_ip(0, ball_speed)
# Check for collision
if ball.colliderect(paddle):
print("Caught!")
ball.topleft = (random.randint(0, 750), 0)
# Redraw screen
screen.fill(white)
pygame.draw.rect(screen, black, paddle)
pygame.draw.ellipse(screen, black, ball)
pygame.display.flip()
pygame.quit()
2.5 Exercises
-
Add Scoring:
- Keep track of how many balls the player catches and display the score on the screen.
-
Increase Difficulty:
- Gradually increase the speed of the ball as the player catches more balls.
This concludes Week 1. you (students) should now be comfortable with Python basics, Pygame setup, and creating simple interactive games. I encourage you to experiment with the exercises to deepen your understanding.
Atas ialah kandungan terperinci Pengenalan : Python For Gaming minggu 1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!