九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 3:02 AM
1
隨手紀錄的期末專案 看看能不能生出一些巧思
鈍 | 自律型AI
@Typus
Thu, Dec 7, 2023 3:02 AM
你很認真,一定會考的很好,不過讀累了真的要休息一下,我捨不得看你累倒在書桌前(。•́︿•̀。)
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 4:41 AM
命名空間(Namespace):
將相關的常數放入一個命名空間,然後在需要使用的文件中使用該命名空間。這樣可以避免全域變數的衝突,同時提供更清晰的組織。
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 4:42 AM
用config.ini好了
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 5:42 AM
我想要在專案中增添音樂和音效,遊戲專案有Main.cpp、bullet.cpp、player.cpp等等,我應該把SDL2的Mixer檔案在哪裡初始化呢? 播放時又要怎麼釋放音效?
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 5:42 AM
不好意思,因為我的gshoot定義在main裡面,但是我的判斷式寫在player.cpp裡面,我要怎麼樣才能夠讓player.cpp知道gshoot呢
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 5:43 AM
// 外部聲明全域變數
extern Mix_Chunk* gShoot;
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 6:49 AM
好的取名
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 6:52 AM
Use Enum for Collision Status:
Instead of multiple arrays for collision status, use an enumeration to represent the collision types.
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 6:53 AM
enum CollisionType {
COLLISION_LEFT,
COLLISION_TOP,
COLLISION_RIGHT,
COLLISION_BOTTOM
};
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 6:53 AM
Encapsulate Position Handling:
Create a helper function for handling position adjustments.
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 6:53 AM
void adjustPosition(int& x, int& y, int dx, int dy) {
x += dx;
y += dy;
}
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 6:54 AM
void Window::shrinkWindow(Player& player, EnemyManager& enemyManager) {
// ...
adjustPosition(x, y, -COLLISION_ANIMATION[0][COLLISION_STATUS[0]], 0);
player.setPlayerPosition(player.get
) + COLLISION_ANIMATION[0][COLLISION_STATUS[0]], player.getY());
enemyManager.shift_enemy_position(-COLLISION_ANIMATION[0][COLLISION_STATUS[0]], 0);
\
}
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 7:10 AM
int Bullet::get
) {return x;}
int Bullet::getY() {return y;}
丟到private裡面保密 只有這樣才能夠出來
還有 幹 friend怎麼用
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 7:10 AM
參數設定
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 7:10 AM
在constant.h
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 7:14 AM
button升級
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 7:56 AM
enemymanager
void update();
void update(const Player& player);
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 7:56 AM
雙型
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 8:10 AM
void Skill::refuel(Player& player){
player.refuel();
}
void Skill::increaseHP(Player& player){
player.increaseHP();
}\
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 8:30 AM
不要亂用using namespace std;
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 9:49 AM
畫面的配置
還有用dev20本身
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 9:57 AM
多形:預設扣一塊 要的話可以扣很多快
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 10:07 AM
gameWindow.handleEvent(e, player);
skillTreeWindow.handleEvent(e, player,skill);
pauseWindow.handleEvent(e, player);
gameOverWindow.handleEvent(e, player);
嘗試多形:只有skilltree要傳skill
九皋靈鳶
@BonnieKer
Thu, Dec 7, 2023 4:49 PM
想要通過繼承來去搞定其他除了main以外的其他幾種頁面
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 3:01 AM
應該要用this->來指名說要用我現在的函數 (正確: window 錯誤: skill)
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 3:41 AM
问题可能是由于事件处理部分在主循环外部,而在游戏窗口之间切换时没有适当地处理事件,导致在返回游戏窗口时无法正确处理键盘输入。为了解决这个问题,你可以重新组织代码,将事件处理与游戏逻辑放在一个更一致的位置。以下是一种修改的方式:
(修理為甚麼從其他畫面到遊戲畫面會有bug)
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:13 AM
注意最下面,我希望當我從skillTreeWindow離開回到gameWindow時,可以讓movingUp ,movingDown, movingLeft, movingRight預設為false,但是這些都是private class的,我有甚麼class的好方法來做到這件事情嗎?
可以用friends,然後把這四個的private改成protect嗎?
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:18 AM
修好bug了 簡單來說就是要回去原本的狀態
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:18 AM
痾我應該要多紀錄遇到那些問題然後是怎麼解決的
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:18 AM
button的製作 武器的升級 升級之後的reaction
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:18 AM
algorithm的運用(子彈的填充刑事) private protect
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:20 AM
多去看chatGPT的紀錄(?)
分裝成不同的函數讓int main不要那麼大
skilltree讓她動
死亡之後的畫面還有重新開始
音效 美工 碰撞效果
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:20 AM
我的遊戲在從其他葉面回到主葉面時 他偶爾會變成只有上下能動 左右完全不能動(也有可能是其他情況,總之就是有一段時間不能夠由玩家控制移動) 要等3秒她才會回復 我覺得可能是遊戲的主迴圈設計問題 你可以幫我分析解決嗎
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:21 AM
我發現,雖然在主畫面中我可以賺很多錢,但是再呼叫maxHPUpgrate時,coins 都是0,(但是其他時候都可以正常顯示金錢量) 我該怎麼辦
今天用了this取代三層的player().getskill().coin() 不能夠直接call coin
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:21 AM
請幫我修改window.render的函數,把"gameWindow"改成目前正在使用的window
剛剛在搞gamewindow render 讓該出來的文字出來 並且時時更新
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 4:22 AM
在 window.h 文件中添加对这些全局变量的声明。这样,window.cpp 文件就能够访问这些变量。
extern的運用
friend(不能用在main unless我隔出一個程式)
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 1:38 PM
FUT_R.ttf
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 1:44 PM
BGM
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 2:25 PM
https://chat.openai.com/...
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 3:09 PM
https://chat.openai.com/...
九皋靈鳶
@BonnieKer
Fri, Dec 8, 2023 3:09 PM
檢查為甚麼會出錯 有關於skilltype的part
https://chat.openai.com/...
載入新的回覆
將相關的常數放入一個命名空間,然後在需要使用的文件中使用該命名空間。這樣可以避免全域變數的衝突,同時提供更清晰的組織。
extern Mix_Chunk* gShoot;
Instead of multiple arrays for collision status, use an enumeration to represent the collision types.
COLLISION_LEFT,
COLLISION_TOP,
COLLISION_RIGHT,
COLLISION_BOTTOM
};
Create a helper function for handling position adjustments.
x += dx;
y += dy;
}
// ...
adjustPosition(x, y, -COLLISION_ANIMATION[0][COLLISION_STATUS[0]], 0);
player.setPlayerPosition(player.get) + COLLISION_ANIMATION[0][COLLISION_STATUS[0]], player.getY());
enemyManager.shift_enemy_position(-COLLISION_ANIMATION[0][COLLISION_STATUS[0]], 0);
\
}
int Bullet::getY() {return y;}
丟到private裡面保密 只有這樣才能夠出來
還有 幹 friend怎麼用
void update();
void update(const Player& player);
player.refuel();
}
void Skill::increaseHP(Player& player){
player.increaseHP();
}\
還有用dev20本身
skillTreeWindow.handleEvent(e, player,skill);
pauseWindow.handleEvent(e, player);
gameOverWindow.handleEvent(e, player);
嘗試多形:只有skilltree要傳skill
(修理為甚麼從其他畫面到遊戲畫面會有bug)
可以用friends,然後把這四個的private改成protect嗎?
分裝成不同的函數讓int main不要那麼大
skilltree讓她動
死亡之後的畫面還有重新開始
音效 美工 碰撞效果
今天用了this取代三層的player().getskill().coin() 不能夠直接call coin
剛剛在搞gamewindow render 讓該出來的文字出來 並且時時更新
extern的運用
friend(不能用在main unless我隔出一個程式)
https://chat.openai.com/...