Heim  >  Artikel  >  WeChat-Applet  >  Einführung in das Beispiel der Entwicklung eines WeChat-Masturbationsspiels auf dem PC mit Pygame

Einführung in das Beispiel der Entwicklung eines WeChat-Masturbationsspiels auf dem PC mit Pygame

高洛峰
高洛峰Original
2017-03-23 11:53:533237Durchsuche

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:

Einführung in das Beispiel der Entwicklung eines WeChat-Masturbationsspiels auf dem PC mit Pygame

Einführung in das Beispiel der Entwicklung eines WeChat-Masturbationsspiels auf dem PC mit Pygame

2. Wissenspunkte

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

Codereferenz PythonShootGame geschrieben von Kill-Console

Dokumentreferenz-Pygame-Dokumentation


4. Installieren Sie abhängige Pakete

(unten). Der Inhalt muss auf der offiziellen Website des Experimentalgebäudes implementiert werden. Sie können ihn überspringen, wenn er nicht benötigt wird)

Die Pygame-Bibliothek muss installiert werden, um die Ausführung des für dieses Experiment erforderlichen Codes zu unterstützen.

Ö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:

$git clone https://github .com/shiyanlou/PythonShootGame.git


Detaillierte Schritte

Pygame initialisieren

Größe der Spieloberfläche, Hintergrundbild und Titel festlegen

Die Hauptschleife des Spiels muss die Initialisierung, Aktualisierung und Beendigung der Spieloberfläche verarbeiten

Spielerflugzeuge anzeigen (die im Code verwendeten resources/image/shoot.png enthalten eine Vielzahl von Flugzeugen, Sie müssen nur die Subsurface-API von pygame .image verwenden, die die erforderlichen Bilder in Shoot.png basierend auf der Position abfängt)


Beispielcode

#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()
2 Behandeln Sie die Tastatur in der Hauptschleife. Eingabeereignisse (Tastenbetätigungen nach oben, unten, links und rechts) fügen Spieloperationsinteraktionen hinzu (Bewegung des Flugzeugs des Spielers nach oben, unten, links und rechts).

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

3. ***Verarbeitung
#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()
*** wird vom Spielerflugzeug ausgegeben und bewegt sich mit einer bestimmten Geschwindigkeit zum oberen Rand der Schnittstelle.

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

4. Feindliche Flugzeugverarbeitung
#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)
Feindliche Flugzeuge müssen zufällig über der Schnittstelle generiert werden und sich mit einer bestimmten Geschwindigkeit nach unten bewegen.

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

5. Punkteanzeige
#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)
Die Anzahl der zerstörten Zielflugzeuge wird an einer festen Stelle auf der Spieloberfläche angezeigt.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn