Pygame entwickelt PC-seitiges WeChat-Masturbationsspiel
1. Projekteinführung
1. Dieses Projekt ähnelt dem einst beliebten WeChat-Masturbationsspiel. Das Spiel wird in der Python-Sprache entwickelt, hauptsächlich unter Verwendung der Pygame-API. Das Spiel wird schließlich in Form der Python-Quelldatei game.py fertiggestellt. Sie müssen nur python game.py ausführen, um das Spiel zu betreten.
Der letzte Screenshot des Spiels lautet wie folgt:
In diesem Experiment werden wir Einführung in die Linux-Desktop-Umgebung. So entwickeln Sie schnell kleine Spiele mit Python und Pygame. Mit diesem Spiel können Sie mit der Entwicklung von Pygame-Spielen beginnen.
3. Referenzdokumentation
(unten). Der Inhalt muss auf der offiziellen Website des Experimentalgebäudes implementiert werden. Sie können ihn überspringen, wenn er nicht benötigt wird)
Öffnen Sie das Xfce-Terminal in der experimentellen Umgebung und geben Sie den folgenden Befehl ein, um Pygame zu installieren. Sie werden aufgefordert, das Passwort von Shiyanlou einzugeben, das ebenfalls Shiyanlou lautet:
$ sudo apt-get update$ sudo apt-get install python -pygame
2. Technisches Design
1. Spielcharaktere
Zu den in diesem Spiel erforderlichen Charakteren gehören Spielerflugzeuge, feindliche Flugzeuge und Bomben. Benutzer können die Position des Flugzeugs des Spielers auf dem Bildschirm über die Tastatur verschieben, um feindliche Flugzeuge an verschiedenen Orten anzugreifen. Daher sind die folgenden drei Klassen Spieler, Feind und Kugel so konzipiert, dass sie den drei Spielcharakteren entsprechen.
Für den Spieler sind die erforderlichen Vorgänge das Schießen und die Bewegung. Die Bewegung ist in vier Situationen unterteilt: nach oben, nach unten, nach links und nach rechts.
Für Enemy ist es relativ einfach: Bewegen Sie es einfach, erscheinen Sie am oberen Bildschirmrand und bewegen Sie sich zum unteren Bildschirmrand.
Bei Bullet ist es dasselbe wie bei einem Flugzeug, es muss sich nur mit einer bestimmten Geschwindigkeit bewegen.
2. Spielfunktionen
Ich glaube, Freunde, die WeChat-Masturbation gespielt haben, sind damit vertraut, daher wurde das Spiel hier vereinfacht. Die Geschwindigkeit des Flugzeugs ist festgelegt, und die Geschwindigkeit der Bombe ist festgelegt. Die Grundoperation besteht darin, das Flugzeug des Spielers zufällig vom oberen Bildschirmrand aus zu bewegen und mit konstanter Geschwindigkeit nach unten zu fallen Wird vom Flugzeug des Spielers gesendet, wird es zerstört. Wenn das Zielflugzeug das Flugzeug des Spielers berührt, ist das Spiel beendet und die Punktzahl wird angezeigt.
3. Code-Implementierung
1. Schnittstellenanzeige
Die für die Code-Implementierung erforderlichen Ressourcen-Bilddateien können über den folgenden Befehl abgerufen werden:
Detaillierte Schritte
#1. 初始化pygame pygame.init() #2. 设置游戏界面大小、背景图片及标题 # 游戏界面像素大小 screen = pygame.display.set_mode((480, 800)) # 游戏界面标题 pygame.display.set_caption('飞机大战') # 背景图 background = pygame.image.load('resources/image/background.png').convert() # Game Over的背景图 game_over = pygame.image.load('resources/image/gameover.png') # 飞机图片 plane_img = pygame.image.load('resources/image/shoot.png') # 截取玩家飞机图片 player = plane_img.subsurface(pygame.Rect(0, 99, 102, 126)) #3. 游戏主循环内需要处理游戏界面的初始化、更新及退出 while True: # 初始化游戏屏幕 screen.fill(0) screen.blit(background, (0, 0)) # 显示玩家飞机在位置[200,600] screen.blit(player, [200, 600]) # 更新游戏屏幕 pygame.display.update() # 游戏退出事件 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit()
Detaillierte Schritte
Tastaturereignisse abrufen (oben, unten, linke und rechte Tasten)
Verarbeitung von Tastaturereignissen (Verschieben der Position des Flugzeugs)
Fügen Sie den obigen Schrittcode in das Spiel ein.
Beispielcode in der Hauptschleife
#1. 获取键盘事件(上下左右按键) key_pressed = pygame.key.get_pressed() #2. 处理键盘事件(移动飞机的位置) if key_pressed[K_w] or key_pressed[K_UP]: player.moveUp() if key_pressed[K_s] or key_pressed[K_DOWN]: player.moveDown() if key_pressed[K_a] or key_pressed[K_LEFT]: player.moveLeft() if key_pressed[K_d] or key_pressed[K_RIGHT]: player.moveRight()
Detaillierte Schritte
Generieren ***, die Übertragungsfrequenz muss gesteuert werden
Mit fester Geschwindigkeit bewegen***
Nach dem Auszug löschen des Bildschirms***
Umgang mit der Auswirkung von feindlichen Flugzeugen, die von *** getroffen werden (wird im nächsten Abschnitt verarbeitet)
Beispielcode
#1. 生成***,需要控制发射频率 # 首先判断玩家飞机没有被击中 if not player.is_hit: if shoot_frequency % 15 == 0: player.shoot(bullet_img) shoot_frequency += 1 if shoot_frequency >= 15: shoot_frequency = 0 for bullet in player.bullets: #2. 以固定速度移动*** bullet.move() #3. 移动出屏幕后删除*** if bullet.rect.bottom < 0: player.bullets.remove(bullet) # 显示*** player.bullets.draw(screen)
Detaillierte Schritte
Gegnerische Flugzeuge generieren, die Erzeugungsfrequenz muss kontrolliert werden
Gegnerische Flugzeuge bewegen
Umgang mit dem Kollisionseffekt zwischen feindlichen Flugzeugen und Spieler Flugzeug
Löschen Sie das feindliche Flugzeug, nachdem Sie den Bildschirm verlassen haben
Verwaltung der Auswirkungen, wenn das feindliche Flugzeug von *** getroffen wird
Beispielcode
#1. 生成敌机,需要控制生成频率 if enemy_frequency % 50 == 0: enemy1_pos = [random.randint(0, SCREEN_WIDTH - enemy1_rect.width), 0] enemy1 = Enemy(enemy1_img, enemy1_down_imgs, enemy1_pos) enemies1.add(enemy1) enemy_frequency += 1if enemy_frequency >= 100: enemy_frequency = 0 for enemy in enemies1: #2. 移动敌机 enemy.move() #3. 敌机与玩家飞机碰撞效果处理 if pygame.sprite.collide_circle(enemy, player): enemies_down.add(enemy) enemies1.remove(enemy) player.is_hit = True break #4. 移动出屏幕后删除飞机 if enemy.rect.top < 0: enemies1.remove(enemy) #5. 敌机被***击中效果处理 # 将被击中的敌机对象添加到击毁敌机Group中,用来渲染击毁动画 enemies1_down = pygame.sprite.groupcollide(enemies1, player.bullets, 1, 1) for enemy_down in enemies1_down: enemies_down.add(enemy_down) # 敌机被***击中效果显示 for enemy_down in enemies_down: if enemy_down.down_index == 0: pass if enemy_down.down_index > 7: enemies_down.remove(enemy_down) score += 1000 continue screen.blit(enemy_down.down_imgs[enemy_down.down_index / 2], enemy_down.rect) enemy_down.down_index += 1 # 显示敌机 enemies1.draw(screen)
Beispielcode
Das obige ist der detaillierte Inhalt vonEinführung in das Beispiel der Entwicklung eines WeChat-Masturbationsspiels auf dem PC mit Pygame. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!