python实战游戏开发——开始游戏项目

来源:互联网 发布:淘宝网下载到桌面 编辑:程序博客网 时间:2024/06/05 17:35

1、创建pygame窗口以及响应用户输入

# -*- coding: utf-8 -*-
import sys

import pygame

def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    screen=pygame.display.set_mode((1200,800))
    pygame.display.set_caption("Alien Invasion")

    #开始游戏主循环
    while True:
       
          #监视键盘和鼠标事件
          for event in pygame.event.get():
              if event.type==pygame.QUIT:
                 sys.exit()
          
          #让最近绘制的屏幕可见
          pygame.display.flip()

run_game()


1)pygame.init()初始化背景设置,让pygame能正常工作。

2)调用pygame.display.set_mode()来创建一个名为screen的显示窗口,实参(1200,800)是一个元组,指定了游戏窗口的尺寸,创建一个宽1200像素、高800像素的游戏窗口。

3)对象screen时一个surface。在pygame中,surface是屏幕的一部分,用于显示游戏元素。在这个游戏中,每个元素都是一个surface。display.set_mode()返回的surface表示整个游戏窗口。我们激活游戏的动画循环后,每经过一次循环都自动重绘这个surface。

4)使用方法pygame.event.get()访问pygame检测到的事件。所有键盘和鼠标事件都将促使for循环执行。在这个循环中,编写一系列的if语句来检测并响应特定的事件。

例如,玩家单击游戏窗口的关闭按钮时,将检测到pygame.QUIT事件,调用sys.exit()来退出游戏。

5)方法pygame.display.filp()命令pygame让最近绘制的屏幕可见。

在这里,每次执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元素时,pygame.display.filp()将不断不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。

2、设置背景色

# -*- coding: utf-8 -*-
import sys

import pygame

def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    screen=pygame.display.set_mode((1200,800))
    pygame.display.set_caption("Alien Invasion")

    #设置游戏背景色
    bg_color=(230,230,230)

    #开始游戏主循环
    while True:
       
          #监视键盘和鼠标事件
          for event in pygame.event.get():
              if event.type==pygame.QUIT:
                 sys.exit()
          
          #每次循环时都会重绘屏幕
          screen.fill(bg_color)

          #让最近绘制的屏幕可见
          pygame.display.flip()

run_game()

1)颜色由红色、绿色和蓝色值组成,其中每个值得可能取值范围都为0~255.颜色值(255,0,0)表示红色,(0,255,0)表示绿色,而(0,0,255)表示蓝色。当红蓝绿色量相同时为浅灰色。
2)方法screen.fill()用背景色填充屏幕;这种方法只接受实参:一种颜色。

3、创建设置类

#settings.py
class Settings():
      def __init__(self):
          #屏幕设置
          self.screen_width=1200
          self.screen_height=800
          self.bg_color=(230,230,230)


#alien_invasion.py
# -*- coding: utf-8 -*-
import sys
from settings import Settings
import pygame

def run_game():
    #初始化游戏并创建一个屏幕对象
    pygame.init()
    ai_settings=Settings()
    screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    #设置游戏背景色
    bg_color=(230,230,230)

    #开始游戏主循环
    while True:
       
          #监视键盘和鼠标事件
          for event in pygame.event.get():
              if event.type==pygame.QUIT:
                 sys.exit()
          
          #每次循环时都会重绘屏幕
          screen.fill(ai_settings.bg_color)

          #让最近绘制的屏幕可见
          pygame.display.flip()

run_game()