創作內容

6 GP

遊戲構思與程式筆記(不定期更新 7/22更新)

作者:Pyramide│2018-07-15 17:39:25│巴幣:12│人氣:145
暑假想做一些事,順便精進一下。
這裡放的是我的參考資料和要做的事,這樣在外也能用手機看一下思考一下。
好啦,其實是我懶,想說丟一些東東出來放著順便提醒自己。
遊戲還在構想,我先把程式語言的功能了解一下。

模式:橫板彈幕、橫板動作。(參考:神奇三合一)

主角X2,關卡會依選擇主角改變。

主角一:芮卡(橫板動作)

主角二:泰瑟(橫版彈幕)

生命值計量方式:血條。可依狀況更換

額外控制:油量與魔力

掉落物與強化:考慮

存檔功能:考慮

調整聲音大小與音樂大小的控制盤
(7/17)完成,使用滑條與按鈕控制聲音參數。

支援攻擊,可替換角色:考慮

對話:需研究

敵人移動路徑,AI:需研究

使用軟體:unity
語言:C#

泰瑟:三段式清板彈幕 (參考:19xx)

芮卡:技能學習式必殺技

魔王:火龍、地蟲、幽浮、新月、俄斯 擇二

順序
*劇情構思

1遊戲基本控制,血條血量。

2重點函式撰寫。

3角色模擬撰寫。

4魔王與怪物智能撰寫。

5必殺技撰寫。

6掉落物撰寫。

7美術。

8暴力式測試,瘋狂式測試

9除錯

怪物構思
技能
未開發
----------------------
程式筆記 C#

靜態類別(Static) 一視同仁,一改變就大家一起改變,像是大家的畢業總學分門檻都是129。
如果學校趴帶,改成130,幹,所有人都要修130。

上學期我把這當成全域變數來做= =,不過現在比較了解他的意思了。

非靜態類別(其他非Static)隨你的東東改變,像是每個人這學期修的學分不一樣。
----------------------
物件 表一物體 利如"噴火戰鬥機"

類別 表一類別 例如"戰鬥機"、"轟炸機"這種類別。

屬性 表一物件所帶有的東東 例如"噴火戰鬥機"的"重量"、"長度"、"武裝"、"迴轉時間"等等。

方法 表物件做的事情 例如噴火戰鬥機起飛、開火、俯衝投彈。

類別裡有物件、物件裡有屬性和方法。
----------------------
多載:一個方法能有不同種作為。

例如:

噴火戰鬥機"開火",但因為距離太遠,駕駛員想先發射7.7毫米指示彈機槍。

噴火戰鬥機"開火",現在距離近了,駕駛員想發射20毫米機槍,重創敵機。

噴火戰鬥機"開火",敵機快毀了,駕駛員全彈發射,撕毀敵機。

這三種都是開火,但是做的事不一樣,所以在開火方法裡寫出不同種開火方法,再加以運用,這就是多載。
----------------------
Switch case

依據不同狀況做不同的事,像是我有只有20塊我就買寶特瓶茶、只有十塊我就買鋁箔包、沒錢我就去不買飲料去上課。

語法 Switch(可以放數字拉,條件拉函式拉、看你)
{
case 錢=20;
debug.log(買保特瓶茶);
break; (跳出,沒寫會出錯)
---第二個第三個情況---
}
----------------------
Struct
跟Class很像,但基本上兩個在資料上有很大的不同。(還不是很了解)
----------------------
List
像是一個不用宣告長度的陣列(Array)
裡面能放字串、整數、浮點數等等,也可以放兩個,像資料那樣。
要把資料拿出來的時候要用foreach。
List名稱.Add(5);-在List裡新增5這個整數。
List名稱.Sort;-排序List裡的清單
List名稱.Reverse;-反轉List裡的順序
List名稱.Reverse;
還有很多功能。
----------------------
一段跳
首先是跳躍的判斷,如果人物有接觸到地面圖層,那他就是在地上,可以進行跳躍。
跳起來以後,人物沒有接觸到地面圖層,此時再按跳躍鍵就不能繼續往上跳了。
這種判斷可以用兩種方法,一種是讓物體自動產生線段,判斷有沒有碰觸到地面圖層。
我是用這種方法拉,因為YOUTUBE裡有教學。

網址:https://www.youtube.com/watch?v=9mHZNYqz3ZE&t=1711s
他教的真的很好!很推薦去訂閱以及拜訪他的網站!

第二種方法我自己還沒測試過,就是用碰撞TAG來判斷,只是自己的構想罷了...
--------------------------------------------------------------------------------------------------------------------
接下來就是二段跳拉
我設定了一個變數,按跳的時候就加1。
一開始他是0,然後+1的時候再按跳會+到2然後再往上跳一層
然後到2的時候按啥都沒有反應了,直到他掉下來。
掉下來會回到1,為啥不是回到0勒?

我用圖片紀錄一下
抱歉我字很醜

因為我在跳躍程式後面寫了if (IsGround && Jumptwo == 2) { Jumptwo = 1; }
如果碰地與變數等於二皆符合,變數等於一
但是我在地板上要再起跳的時候會按跳躍鍵,這時候變數應該再加一
照理來說按下去會加到2,但起跳瞬間那線其實還沒完全離開地面,所以又符合碰地與變數等於二。所以變數又回到1了。

所以在空中再跳又能到2,就不能再跳,回到地上又回到1。
然後循環。

媽幹,我那時候寫0害我想了三小時,結果改成1就好,嗚嗚。

然後還有一個小問題,就是跳的時候其實給一個往上堆的推力,比如說500。
你連按會+500 +500上去,到0就會沒力往下掉

但是如果你加到500,他因為沒推力了往下掉,這時候速度是負的喔,你再加500會變成100多或是300,就不會像第一次跳那麼高了。

所以我的方法就是讓玩家在按下二段跳時,把速度歸零再跳,就算是負的也歸零。
因為是瞬間的事,人眼看不出來
playerRigidbody2D.velocity = Vector2.zero;
這樣就不會有問題了。
以上。
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4058514
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 1 篇留言

MYH
加油加油~~

07-29 11:38

Pyramide
謝謝:)07-29 12:12
我要留言提醒:您尚未登入,請先登入再留言

6喜歡★catcat6103 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:7/14 練習... 後一篇:7/19 練習(月光花)...

追蹤私訊切換新版閱覽

作品資料夾

ygfb59638大家
颱風剛過,就請大家來小屋泡泡茶看看繪圖日誌(大家周末愉快)看更多我要大聲說昨天21:13


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】