暫停更新的原因是因為Sprite真的是他媽爛東西
屬性超級難用嘿這是心血來潮的pygame製作筆記
只要有更新都會在GitHub上面出現
第一次建立如果有問題儘管提出ouo
以下字的顏色或是類別會記錄在這邊方便閱讀
紅字:有問題還沒解決,如果有人知道可以直接跟我說我會萬分感激QQ
綠字:```程式碼```
藍字:類別
橘字:重點
---私哇分隔線爹四---
前言(可能還會補我不知道):
心血來潮想要寫個其實都陸陸續續有相關作品的生存遊戲,
像是著名的Holocure或是手機上一直有更新的Magic Survival,
一方面平常挺喜歡這種遊戲的,
二來是也想要練習寫遊戲增加手感和實作經驗。
這第一個作品應該會很亂(雖然已經很努力寫註解和分類了)
另外就是希望到時候可以有管道可以學把每個部份分開成不同的.py檔的方法
不然塞成一整個到main幾千行看了真的眼花
筆記(會越來越多):
路徑要先有物件才可以取得路徑,像是沒有先player = Player()
就不能抓player.rect.x
fps更新率
要先造出clock之後去讓他跑每秒更新率
我是先設FPS = 60
```
clock = pygame.time.Clock()
```
圖片雖然影片用os.path.join可以成功但我的不行
所以我是寫
```
item = pygame.image.load(r'path').convert()
```
path就是用相對路徑,希望到時候打包成exe檔案的時候可以成功= =
更新紀錄們(由上而下越來越新):
2022/10/29-
1. 創建了視窗和兩個實體類別,玩家和阿御,玩家預計會是紙袋或是其他人,再看看到時候怎麼設計。
2. 已經做出可以讓玩家上下左右自由移動的功能
3. 已經做出讓阿御可以追蹤玩家的功能
當中問題不太大,但知道之前苦惱了一陣子,因為我是程式新手所以對路徑不熟悉
由於類別被編輯好之後,其實程式本身並沒有創造出玩家或是阿御,因此其實要讓阿御這個類別在編輯的時候去抓玩家的座標是不可能的,所以解決方法就是要先創造玩家才能抓位置。
```
class Player() #詳細內容都在GitHub當中的程式碼
class Ayu()
player = Player() #要先創造出玩家才可以抓玩家的座標
```
之後才能在阿御這個類別中去定義每次更新的時候要怎麼移動
我是先設定就是單純追蹤而已
```
def update(self):
if self.rect.x > player.rect.x:
self.rect.x = self.rect.x - self.speedx
else:
self.rect.x = self.rect.x + self.speedx
if self.rect.y > player.rect.y:
self.rect.y = self.rect.y - self.speedy
else:
self.rect.y = self.rect.y + self.speedy
```
就是這樣。
2022/10/31-
1. 新增了圖片,紙袋頭、阿御頭、拉麵、哈哈屁眼當背景,主要都是測試為主
2. 新增了空白鍵可以發射隨機方向的拉麵,打到阿御阿御會吃掉並且滿足的消失;
如果阿御沒吃到拉麵會去攻擊紙袋並消失(只是設定);並新增上述兩個事件的分數
3. 問題1: 拉麵有時候碰到阿御會被吃掉但阿御沒有滿足地消失(白話文: sprite a 碰 sprite b理當來講設定是兩個都要消失,但sprite b卻沒消失),估計是有兩個阿御巧妙的重疊,需要把重生模式和行為模式調整。
4. 問題2: 阿御的行動模式因為是單純偵測紙袋的位置而增加或減少參數值,所以行動會變得跟影片當中一樣很不生動,尚未想出解決辦法,預計要爬文。
5. 問題3: 圖片路徑用os.path.join無法成功,明明資料夾名稱都打對,終端機的執行位置也沒錯,卻顯示沒有讀到,所以暫時用相對路徑處理。
6. 上傳了當前測試的影片:
基本上這兩天處理的東西教學當中都有,不過就是想要做自己想要的東西的時候會出現一些小問題。