日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python语言程序设计课程论文--飞机大战

發布時間:2023/12/18 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python语言程序设计课程论文--飞机大战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python語言程序設計課程論文

項目名稱:飛機大戰

摘要

這款游戲的名字叫<飛機大戰>,是使用Python開發的縱版飛行射擊類游戲.Python是一種面向對象的解釋型計算機程序設計語言,具有簡單易學,可移植,可拓展等特點.并且擁有豐富的資源.在圖形處理,數字處理,網絡編程等方面有廣泛用途.這個游戲利用了Python的pygame模塊,射擊了子彈,飛機類的相關方法和屬性,進行了背景貼圖,實現了飛機大戰游戲的功能.由于這款游戲的受眾是年齡比較小的小朋友,所以我把飛機改成了一個小豬仔,比較可愛,應該會更受小朋友們的喜歡.
關鍵字: Python,pygame,面向對象,飛機大戰.
Abstract The game’s name is , was developed by using the Python version longitudinal flight shooting game. Python is an object-oriented interpreted computer programming language, is easy to learn, portable, scalable, etc., and is rich in resources. In image processing, digital processing, network programming, etc have broad USES. The game using the module of pygame Python, fired bullets, the related methods and properties of a class, the background map, realized the function of the plane war game. Because of the game, the audience is the age small kid, so I changed the plane into a small pig, more cute, should be more liked by children.
Key Words: Python,pygame,object-oriented,plane war

1.緒論

1.1研究的背景及意義

當今社會是一個信息社會.自從世界上第一臺計算機問世以來,計算機行業飛速發展.隨著以全球信息網絡普及和全球信息共享為標志的”全球信息網絡革命”的蓬勃興起,計算機變成了人們生活中必不可少的一部分.
過去,人們主要是借助電影,電視,音樂等方式來娛樂.而今天,以游戲為代表的電子娛樂正成為主流娛樂方式.因為CPU以及顯卡等設備的高速發展,為人們開發出更加炫目多彩的游戲提供了可能.目前紛繁復雜的游戲軟件比比皆是,無論在線的網絡游戲還是桌面游戲,二維的還是三維立體空間的,多由單機版游戲孕育而來.學習簡單的單機版游戲的制作,有利于初學者了解游戲制作的理念.

1.2國內外發展現狀

96,97年的國產游戲產品是單機版的游戲,在當時的市場是雖然品質和檔次不如外來產品,但也占有一定的市場,例如<仙劍奇俠傳>,<三國志>等系列帶有鮮明中國特色與氣息的游戲在市場上掀起了一波高潮.1998年聯眾與中國游戲中心等老牌的游戲平臺的推出標志著電腦游戲在中國的開荒與生根.但是到了1999年沒有形成主流產品的情況下,政策不明朗,包括開發資金出現問題等原因國產游戲開始走下坡路.一直到了2000年,網絡游戲問世并且很快流行起來,我國的游戲行業才有漸漸的復蘇.但是由于投入差距太大,起步晚等原因與外國游戲相對而言并沒有競爭力.
時至今日,網絡游戲走入盛世,成為了大部分人休閑娛樂的主要修為.國內網易,騰訊,九城,完美等公司百花齊放,國產網游漸漸走入國際市場,而且基于網絡的發展真正實現了網絡全球化,網絡游戲也是遍布全球,全球同玩一款游戲的現象比比皆是.大量海外游戲走入中國市場,電腦游戲百花紛呈,隨著經濟的進步,計算機科技的發展,這一現象將愈演愈烈.

1.3主要的研究內容

本項目主要完成一種基于Python開發的一款單機游戲.項目研究的具體任務包括:
(1)完成敵機發射子彈功能
(2)實現敵機子彈和玩家飛機的碰撞檢測
(3)為消失的飛機添加爆炸效果

1.4本文的組織結構

第1章緒論 本章主要介紹了項目的研究背景,項目研究的目的與意義,以及該項目所在領域國內外發展狀況等.最后指出了本文工作內容及論文的組織結構.
第2章項目結構 介紹項目的結構,對使用的相關技術,相關模塊,實現功能的原理進行介紹,采用框架圖,示例圖等進行表述,使人可以對項目的框架和原理有個比較好的把握.
第3章實現代碼 對代碼進行分段介紹,先干什么,然后干什么.
第4章實驗 展示實驗結果.
第5章總結和展望 總結工作并指出不足.

1.5小結

詳細介紹了電腦游戲開發的國內外現狀,以及本論文研究的方向和論文的整體結構.從文章中能夠清楚的了解本論文的整體框架,對以后的個細節都有清晰的認識.

2.項目結構

2.1項目的結構

本項目分為主程序plane_main.py和主程序所用到的模塊plane_sprites.py.

2.2項目的實現思路

創建一個pygame窗口
必須使用循環使其可以退出
必須增加語句讓其更改背景顏色后的屏幕顯示

3.實現代碼

palne_main.py
import pygame
from plane_sprites import *
class PlaneGane(object):
def init(self):
print(“游戲初始化”)
self.screen = pygame.display.set_mode(SCREEN_RECT.size)
self.clock = pygame.time.Clock()
self.__creat_sprites()
pygame.time.set_timer(CREATE_ENEMY_EVENT,1000)
pygame.time.set_timer(HERO_FIRE_EVENT, 500)
def __creat_sprites(self):
bg1 = Background()
bg2 = Background(True)
self.back_group = pygame.sprite.Group(bg1,bg2)
self.enemy_group = pygame.sprite.Group()
self.hero = Hero()
self.hero_group = pygame.sprite.Group(self.hero)
def start_game(self):
print(“游戲開始…”)
while True:
self.clock.tick(FRAME_PER_SEC)
self.__event_handler()
self.__check_collide()
self.__update_sprites()
pygame.display.update()
def __event_handler(self):
for event in pygame.event.get():
#判斷是否退出程序
if event.type==pygame.QUIT:
PlaneGane.__game_over()
elif event.type == CREATE_ENEMY_EVENT:
print(“炸彈來了”)
enemy = Enemy()
self.enemy_group.add(enemy)
elif event.type == HERO_FIRE_EVENT:
self.hero.fire()
elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
print(“向右移動”)
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_RIGHT]:
self.hero.speed = 2
elif keys_pressed[pygame.K_LEFT]:
self.hero.speed = -2
else:
self.hero.speed = 0
def __check_collide(self):
pygame.sprite.groupcollide(self.hero.bullets,self.enemy_group,True,True)
enemies = pygame.sprite.spritecollide(self.hero,self.enemy_group,True)
if len(enemies) > 0:
self.hero.kill()
PlaneGane.__game_over()
def __update_sprites(self):
self.back_group.update()
self.back_group.draw(self.screen)

self.enemy_group.update()self.enemy_group.draw(self.screen)self.hero_group.update()self.hero_group.draw(self.screen)self.hero.bullets.update()self.hero.bullets.draw(self.screen) @staticmethod def __game_over():print("游戲結束")pygame.quit()exit()

if name == ‘main’:
game=PlaneGane()
game.start_game()

plane_sprites.py
import random
import pygame

SCREEN_RECT = pygame.Rect(0,0,480,700)
FRAME_PER_SEC = 60
CREATE_ENEMY_EVENT = pygame.USEREVENT
HERO_FIRE_EVENT = pygame.USEREVENT + 1

class GameSprite(pygame.sprite.Sprite):
def init(self,image_name,speed=1):
super().init()
self.image=pygame.image.load(image_name)
self.rect=self.image.get_rect()
self.speed=speed
def update(self):
self.rect.y +=self.speed

class Background(GameSprite):
def init(self,is_alt=False):
super().init("./images/2.jpg")
if is_alt:
self.rect.y = -self.rect.height
def update(self):
super().update()
if self.rect.y >= SCREEN_RECT.height:
self.rect.y= -self.rect.height

class Enemy(GameSprite):
def init(self):
super().init("./images/5.png")
self.speed = random.randint(1,3)
self.rect.bottom = 0
max_x = SCREEN_RECT.width - self.rect.width
self.rect.x = random.randint(0,max_x)

def update(self):super().update()if self.rect.y >= SCREEN_RECT.height:self.kill()def __del__(self):print("炸彈銷毀 %s"%self.rect)pass

class Hero(GameSprite):
def init(self):
super().init("./images/3.png",0)
self.rect.centerx = SCREEN_RECT.centerx
self.rect.bottom = SCREEN_RECT.bottom
self.bullets = pygame.sprite.Group()

def update(self):self.rect.x += self.speedif self.rect.x <0:self.rect.x = 0elif self.rect.right > SCREEN_RECT.right:self.rect.right = SCREEN_RECT.rightdef fire(self):print("發射子彈")for i in (0,1,2):bullet = Bullet()bullet.rect.bottom = self.rect.y - i*20bullet.rect.centerx = self.rect.centerxself.bullets.add(bullet)

class Bullet(GameSprite):
def init(self):
super().init("./images/bullet1.png", -2)

def update(self):super().update()if self.rect.bottom < 0:self.kill()def __del__(self):print("子彈被銷毀")

4.實驗

5.總結和展望

基于Python的飛機大戰游戲是采用python語言及其pygame模塊開發完成的.本項目實現了游戲流程中的所有功能,界面布局更加人性化,并有著良好的可擴展性.
這次項目設計開發為今后的學習和工作產生了積極的意義.由于還是初學者,在項目設計中還有欠缺和考慮不周的地方.游戲還有待進一步研究和改善.

總結

以上是生活随笔為你收集整理的Python语言程序设计课程论文--飞机大战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。