原创 數據結構與算法題目集(中文)6-5 鏈式表操作集

// 返回線性表中首次出現X的位置。若找不到則返回ERROR Position Find( List L, ElementType X ) { List l; for (l=L;l!=NULL;l=l->Next)

原创 python033(敵機03—設計並準備敵機類)

設計Enemy類 遊戲啓動後,每隔1秒會出現一架敵機 每架敵機向屏幕下方飛行,飛行速度各不相同 每架敵機出現的水平位置也不相同 當敵機從屏幕下方飛出,不會再飛回到屏幕 初始化方法 指定敵機圖片 隨機敵機的初始位置和初始速度 重寫updat

原创 python002(vi簡介02—vi和vim以及vi的特點)

在很多Linux發行版中,直接把vi做成vim的軟連接 vi Visual interface,是Linux中最經典的文本編輯器 vi的核心設計思想——讓程序員的手指始終保持在鍵盤的核心區域,就能完成所有的編輯操作 vi的特點: 沒有圖形

原创 python048(碰撞檢測02—敵機撞毀英雄)

pygame.sprite.spritecollide() 判斷某個精靈和指定精靈組中的精靈的碰撞 如果將dokill設置爲True,則指定精靈組中發生碰撞的精靈將被自動移除 collided參數是用於計算碰撞的回調函數 返回精靈組中跟精

原创 python034(敵機04—定時創建並顯示敵機精靈)

演練步驟 在__create_sprites()方法中,添加敵機精靈組 敵機是定時創建的,因此在初始化方法中,不需要創建敵機 在__event_handler()方法中,創建敵機,並且添加到精靈組 調用精靈組的add方法可以向精靈組添加精

原创 python001(vi簡介01—學習vi的目的)

vi——終端中的編輯器 1.vi簡介 在工作中,要對服務器上的文件進行簡單的修改,可以使用ssh遠程登陸到服務器上,並且使用vi進行快速的編輯即可 常見需要修改的文件包括: 源程序 配置文件,例如ssh的配置文件 在沒有圖形界面的環境下,

原创 python044(發射子彈02—定義子彈類)

需求回顧——子彈需求 子彈從英雄的正上下方發射沿直線向上方飛行 飛出屏幕後,需要從精靈組中刪除 Bullet——子彈 初始化方法 指定子彈圖片 初始速度=-2——子彈需要向上方飛行 重寫update()方法 判斷是否飛出屏幕,如果是,從精

原创 python046(發射子彈04—一次發射三枚子彈)

for i in (0, 1, 2): bullet = Bullet() bullet.rect.bottom = self.rect.y - i*20 bullet.rect.centerx = s

原创 python047(碰撞檢測01—子彈摧毀敵機)

碰撞檢測 pygame提供了兩個非常方便的方法可以實現碰撞檢測: pygame.sprite.groupcollide() groupcollide(group1,group2,dokill1,dokill2,collided=None

原创 python045(發射子彈03—發射子彈)

發射子彈 在Hero方法的初始化方法中創建子彈精靈組屬性 修改__update_sprites方法,讓子彈精靈組調用update和draw方法 實現fire方法 創建子彈精靈 設置初始位置——在英雄的正上方 將子彈添加到精靈組  

原创 python043(發射子彈01—添加並監聽英雄發射子彈事件)

需求回顧——英雄需求 遊戲啓動後,英雄出現在屏幕的水平中間位置,距離屏幕底部120像素 英雄每隔0.5秒發射一次子彈,每次連發三枚子彈 英雄默認不會移動,需要通過左右方向鍵,控制英雄在水平方向移動 添加發射子彈事件 pygame的定時器使

原创 python041(英雄05—控制英雄左右移動)

在Hero類中重寫update方法 用速度speed和英雄rect.x相加 不需要調用父類方法 在__event_handler方法中根據左右方向鍵設置英雄的速度即可

原创 python040(英雄04—兩種按鍵方式對比)

移動英雄位置 第一種方式判斷event.type == pygame.KEYDOWN 第二種方式 首先使用pygame.key.get_pressed()返回所有按鍵元組 通過鍵盤常量,判斷元組某一個鍵是否被按下——如果被按下,對應數值

原创 python039(英雄03—繪製英雄)

在__create_sprites,添加英雄精靈和英雄精靈組 後續要針對英雄做碰撞檢測以及發射子彈 所以英雄要單獨定義成屬性 在__update_sprites,讓英雄精靈組調用update和draw方法  

原创 python036(敵機06—銷燬飛出屏幕的敵機)

移出屏幕銷燬敵機 敵機移出屏幕之後,如果沒有撞到英雄,敵機的歷史使命已經終結 需要從敵機組刪除,否則會造成內存消費 檢測敵機被銷燬 __del__內置方法會在對象被銷燬前調用,在開發中,可以用於判斷對象是否被銷燬 def __del__