手把手带你做一个Python打飞机游戏

搭建界面

#coding=utf-8
import pygame

'''
    1\. 搭建界面,主要完成窗口和背景图的显示
'''

if __name__ == "__main__":

    #1\. 创建一个窗口,用来显示内容
    screen = pygame.display.set_mode((480,890),0,32)

    #2\. 创建一个和窗口大小的图片,用来充当背景
    background = pygame.image.load("./feiji/background.png").convert()

    #3\. 把背景图片放到窗口中显示
    while True:
        screen.blit(background,(0,0))
        pygame.display.update()

#需要获取整体源码,可加威:Start18809  免费获取更多关于Python相关资料

 检测键盘

#coding=utf-8
import pygame
from pygame.locals import *

'''
    2. 用来检测事件,比如按键操作
'''

if __name__ == "__main__":

    #1. 创建一个窗口,用来显示内容
    screen = pygame.display.set_mode((480,890),0,32)

    #2. 创建一个和窗口大小的图片,用来充当背景
    background = pygame.image.load("./feiji/background.png").convert()

    #3. 把背景图片放到窗口中显示
    while True:

        #设定需要显示的背景图
        screen.blit(background,(0,0))

        #获取事件,比如按键等
        for event in pygame.event.get():

            #判断是否是点击了退出按钮
            if event.type == QUIT:
                print("exit")
                exit()
            #判断是否是按下了键
            elif event.type == KEYDOWN:
                #检测按键是否是a或者left
                if event.key == K_a or event.key == K_LEFT:
                    print('left')

                #检测按键是否是d或者right
                elif event.key == K_d or event.key == K_RIGHT:
                    print('right')

                #检测按键是否是空格键
                elif event.key == K_SPACE:
                    print('space')

        #更新需要显示的内容
        pygame.display.update()

显示、控制玩具飞机-面向过程

#coding=utf-8
import pygame
from pygame.locals import *

'''
    3\. 使用面向过程的方式来显示一个飞机,并控制其左右移动
'''

if __name__ == "__main__":

    #1\. 创建一个窗口,用来显示内容
    screen = pygame.display.set_mode((480,890),0,32)

    #2\. 创建一个和窗口大小的图片,用来充当背景
    background = pygame.image.load("./feiji/background.png").convert()

    #测试,用来创建一个玩家飞机的图片
    hero = pygame.image.load("./feiji/hero.gif").convert()

    #用来保存飞机的x,y坐标
    x=0
    y=0

    #3\. 把背景图片放到窗口中显示
    while True:
        screen.blit(background,(0,0))

        #设定需要显示的飞机图片
        screen.blit(hero,(x,y))

        #判断是否是点击了退出按钮
        for event in pygame.event.get():
            # print(event.type)
            if event.type == QUIT:
                print("exit")
                exit()
            elif event.type == KEYDOWN:
                if event.key == K_a or event.key == K_LEFT:
                    print('left')
                    #控制飞机让其向左移动
                    x-=5
                elif event.key == K_d or event.key == K_RIGHT:
                    print('right')
                    #控制飞机让其向右移动
                    x+=5
                elif event.key == K_SPACE:
                    print('space')

        pygame.display.update()

 

显示、控制玩具飞机-面向对象 


#coding=utf-8
import pygame
from pygame.locals import *

'''
    4\. 使用面向对象的方式显示飞机,以及控制其左右移动

    练一下:接下来要做的任务:
    1\. 实现飞机在你想要的位置显示
    2\. 实现按键控制飞机移动
    3\. 实现按下空格键的时候,显示一颗子弹
'''

class HeroPlane(object):

    def __init__(self,screen):

        #设置飞机默认的位置
        self.x = 230
        self.y = 600

        #设置要显示内容的窗口
        self.screen = screen

        #用来保存英雄飞机需要的图片名字
        self.imageName = "./feiji/hero.gif"

        #根据名字生成飞机图片
        self.image = pygame.image.load(self.imageName).convert()

        #用来保存英雄飞机发射出的所有子弹
        self.bullet = []

    def display(self):
        self.screen.blit(self.image,(self.x,self.y))

    def moveLeft(self):
        self.x -= 10

    def moveRight(self):
        self.x += 10

    def sheBullet(self):
        pass

if __name__ == "__main__":

    #1\. 创建一个窗口,用来显示内容
    screen = pygame.display.set_mode((480,890),0,32)

    #2\. 创建一个和窗口大小的图片,用来充当背景
    background = pygame.image.load("./feiji/background.png").convert()

    #3\. 创建一个飞机对象
    heroPlane = HeroPlane(screen)

    #3\. 把背景图片放到窗口中显示
    while True:
        screen.blit(background,(0,0))

        heroPlane.display()

        #判断是否是点击了退出按钮
        for event in pygame.event.get():
            # print(event.type)
            if event.type == QUIT:
                print("exit")
                exit()
            elif event.type == KEYDOWN:
                if event.key == K_a or event.key == K_LEFT:
                    print('left')
                    heroPlane.moveLeft()
                    #控制飞机让其向左移动
                elif event.key == K_d or event.key == K_RIGHT:
                    print('right')
                    heroPlane.moveRight()
                elif event.key == K_SPACE:
                    print('space')

        pygame.display.update()

 玩家飞机发射子弹

#coding=utf-8
import pygame
from pygame.locals import *

'''
    实现玩家飞机发射子弹

    接下来要做的任务:
    1. 实现飞机在你想要的位置显示
    2. 实现按键控制飞机移动
    3. 实现按下空格键的时候,显示一颗子弹
'''

class HeroPlane(object):

    def __init__(self,screen):

        #设置飞机默认的位置
        self.x = 230
        self.y = 600

   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值