用pygame,作一個小小小小小........遊戲

根據鍵盤方向鍵控制「不知火舞」的上下左右移動python

  其實我對Python能不能作大型遊戲,仍是執質疑態度。Python屬於高級語言,那麼不可避免的是,它的運行速度沒有C語言快。機器語言到彙編語言,到面向過程再到面向對象,它們在電腦上的執行速度由快到慢,而遊戲講究的就是快!必定要快!因此我以爲,Python,不適用於寫大型遊戲。有的人不服了,Python語言是有C語言開發的,而C語言是作遊戲的最有優點的語言,因此Python也能作?spa

  不能否認的是,Python的確有先天性的優點,然而這些優點並不體如今作遊戲上面,它在網頁上面的優點更大,Python的爬蟲等。可是,作些小遊戲,Python是確定不在話下的。pygame官方給的幀數爲40~200,而咱們人類肉眼能分辨的幀數不超過30,因此你是不會在玩着遊戲的時候,一卡一頓的。orm

  

import pygame
import sys
from pygame.locals import *

#初始化Pygame
pygame.init()

size = width,hight = 600,400
speed = [-2,1]
bg = (255,200,255) #RGB顏色

#clock = pygame.time.Clock()
#建立指定大寫的窗口
screen = pygame.display.set_mode(size)
#設置窗口標題
pygame.display.set_caption('不知火舞')

#加載圖片
turtle = pygame.image.load('turtle.png')
#得到圖像的位置矩形
position = turtle.get_rect()
l_head = turtle
r_head = pygame.transform.flip(turtle,True,False)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

        if event.type == KEYDOWN:
            if event.key == K_LEFT:
                turtle = l_head
                speed = [-1,0]
            if event.key == K_RIGHT:
                turtle = r_head
                speed = [1,0]
            if event.key == K_UP:
                speed = [0,-1]
            if event.key == K_DOWN:
                speed = [0,1]
    #移動圖像
    position = position.move(speed)

    if position.left < 0 or position.right > width:
        
        #翻轉圖像
        turtle = pygame.transform.flip(turtle,True,False)
        #反向移動
        speed[0] = -speed[0]

    if position.top < 0 or position.bottom > hight:
        speed[1] = -speed[1]

    #填充背景
    screen.fill(bg)
    #雙緩衝
    #更新圖像
    screen.blit(turtle,position)#bilt方法將一個圖像覆蓋到另外一個圖象上
    #更新界面
    pygame.display.flip()
    #延遲10毫秒
    pygame.time.delay(10)

    #clock.tick(200)
    
#什麼是surface對象?
#pygame 用來表示圖像的對象

 

額,很簡單的一個東西。基本沒什麼難度,但重在堅持嘛!萬一作着作着就特麼作了一個大大大大大大.....遊戲了呢?對象

(有了這些我以爲我能夠先作個貪吃蛇來玩玩?)blog

相關文章
相關標籤/搜索