C .
ODE
G
AMELET
person_outline
Sign In
videogame_asset
Public Games
local_library
Public Library
work
Public Projects
comment
Discuss
search
visibility
code
OPEN
info_outline
# 更好的光暈戰記事件表擴充模組(TWEventsBetterExp) 本模組延續 [**TwilightWarsEventsExp**](https://code.gamelet.com/edit/TwilightWarsEventsExp)(以下簡稱 EXP)的概念所設計,並基於 [**TwilightWarsEvents**](https://code.gamelet.com/edit/TwilightWarsEvents) 建立,用於擴充 [**光暈戰記**](https://twilightwars.gamelet.online/) 事件表功能的模組。 由於 **EXP** 過於混雜,為優化模組架構與性能,將逐步進行程式碼重構,剔除許多不必要,或與 **TwilightWarsEvents** 重疊的功能,保留真正需要的功能。 程式碼搬遷將會是一個持續性的工程,如果你有建議可以優先搬遷的功能,歡迎直接告訴我。 本模組的所有功能都放在 **光暈戰記 (BetterExp)** 目錄底下,且所有功能皆有 (BetterExp) 後綴。 ## 注意事項 即使是作用相同的功能,由於程式碼重構的關係,使用上 **EXP** 還是會和本模組有所差異,沒辦法直接將資料無痛轉移,因此你應該將其視為兩個不同的模組。 如果你的專案已經有大量使用 **EXP** 的功能,想要進行模組遷移,必須同時安裝本模組,當兩模組有功能重複時,請優先使用本模組的功能。 或是當某個功能只存在 **EXP** 時,可以向我回報,讓我將其遷移至本模組以供使用。 想要完全汰換掉 **EXP** 應該是很難,只能慢慢不再去使用裡面的功能,並逐步棄用。 ## 玩家社群 ### Discord - [**嘎姆討論區**](https://discord.gg/hZKQzRfPJM):於 2021/05/08 創立的非官方社群,主要用於討論嘎姆擂台的相關資訊。 ## 作者 **酷可**:[**Code.Gamelet**](/profile/114899766849308759711@google)、[**Gamelet.Online**](https://gamelet.online/user/114899766849308759711@google/board)、[**Youtube**](https://www.youtube.com/@cook1470)
TWEventsBetterExp
cook1470
visibility
code
OPEN
info_outline
# CgEventsUIExp 這個模組提供了一些專門針對 CG 事件表系統使用的 UI 元件。 ## 功能介紹 - 元件 - **推疊容器 (SequentialContainer)** | **[測試事件表](cg://source/test/Events/Actions/Components/SequentialContainerUIExp.events)** | **[教學影片](https://youtu.be/pTEBg6fjjow)** 推疊容器是一個能夠自動管理其子物件位置的 PIXI.Container (容器)。 它會根據設定的堆疊方向、插入方向和間距,動態地排列子物件,並提供自動淡入/淡出功能。 **※ 建議只加入中心點位於物件正中心的子物件。** ## Authors **[cook1470](/profile/cook1470)**
CgEventsUIExp
cook1470
visibility
code
OPEN
info_outline
# 《小女巫・啟程》 ## 遊戲玩法 這是一個 2D 橫向捲軸的 Rougelike 遊戲,通過消滅怪物來獲取經驗值升級,並選擇對應的升級方向,直到最後擊敗 Boss 為止! 小女巫作為玩家操控的角色,會自動發射魔法彈,玩家有機會可以通過升等來提升魔法彈的威力。 除了可以提升魔法彈的威力以外,玩家也可以選擇例如提高生命上限、加快移動速度、提升經驗獲取量等增益屬性。 且當玩家消滅怪物時,皆有機率掉落任意道具,如恢復藥水、經驗寶石等。 ## 操作說明 W-A-S-D、方向鍵、滑鼠左鍵點擊:控制小女巫移動。 ## 後話 這是我參加 2025 iThome 鐵人賽,利用 15 天製作出來的示範專案。 ### 文章連結: **[用 PixiJS 寫遊戲!告別繁瑣設定,在 Code.Gamelet 打造你的第一個遊戲](https://ithelp.ithome.com.tw/users/20152368/ironman/8417)** ## Authors **[cook1470](/profile/cook1470)**
小女巫啟程 無敵版(秒殺BOSS
github_world192
visibility
code
OPEN
info_outline
# ej8yftuohgyul 在這兒寫下一段簡短的文字介紹你的遊戲吧。 ## 開始設計 <a href="cg://source/CG.ej8yftuohgyul/game.events" class="mat-raised-button mat-primary">編輯遊戲事件表</a> ## 作者 **[LratY](/profile/117747283602443678025@google)**
ej8yftuohgyul
LratY
visibility
code
OPEN
info_outline
# 《小女巫・啟程》 ## 遊戲玩法 這是一個 2D 橫向捲軸的 Rougelike 遊戲,通過消滅怪物來獲取經驗值升級,並選擇對應的升級方向,直到最後擊敗 Boss 為止! 小女巫作為玩家操控的角色,會自動發射魔法彈,玩家有機會可以通過升等來提升魔法彈的威力。 除了可以提升魔法彈的威力以外,玩家也可以選擇例如提高生命上限、加快移動速度、提升經驗獲取量等增益屬性。 且當玩家消滅怪物時,皆有機率掉落任意道具,如恢復藥水、經驗寶石等。 ## 操作說明 W-A-S-D、方向鍵、滑鼠左鍵點擊:控制小女巫移動。 ## 後話 這是我參加 2025 iThome 鐵人賽,利用 15 天製作出來的示範專案。 ### 文章連結: **[用 PixiJS 寫遊戲!告別繁瑣設定,在 Code.Gamelet 打造你的第一個遊戲](https://ithelp.ithome.com.tw/users/20152368/ironman/8417)** ## Authors **[cook1470](/profile/cook1470)**
《小女巫・啟程》
cook1470
visibility
code
OPEN
info_outline
# 2025 iThome 鐵人賽 - Cook 用於存放今年參加 iThome 鐵人賽的範例程式碼。 ### 文章連結: **[用 PixiJS 寫遊戲!告別繁瑣設定,在 Code.Gamelet 打造你的第一個遊戲](https://ithelp.ithome.com.tw/users/20152368/ironman/8417)** ## Authors **[cook1470](/profile/cook1470)**
2025 iThome 鐵人賽 - Cook
cook1470
visibility
code
OPEN
info_outline
# 酷可的光暈戰記事件模組(TwilightWarsEventsCook) 用於擴充各種常用,但 [**TwilightWarsEvents**](https://code.gamelet.com/edit/TwilightWarsEvents) 沒有提供的動作、檢查、觸發。 因為 [**TwilightWarsEventsExp**](https://code.gamelet.com/edit/TwilightWarsEventsExp) 太髒太亂了,導致我自己開發新專案都不會用,所以打算重新弄一個乾淨的。 如專案標題所述,是我用來做給自己使用的,因此**破壞性更新是可能的!**如欲安裝請自行斟酌。 但由於開放源碼,所以萬一發生相關事件你也可以自己備份原始功能。 本專案有**大量中文註解**,如果你對於開發光暈戰記的新功能有興趣,可以查看原始碼來了解動作是怎麼運作的。 <font color=red>**注意!本模組可能與 [TwilightWarsEventsExp](https://code.gamelet.com/edit/TwilightWarsEventsExp) 存在部分衝突,如非必要不建議同時安裝兩個模組。**</font> ## 添加新功能的原則 - 必須基於 **TwilightWarsLib** 內有的功能衍生出來,如 `function`、`class` 等。 - 必須支援多人遊戲同步,沒有辦法在多人遊戲時,同步所有玩家狀態的功能不應該添加。 ## 玩家社群 ### Discord - [**嘎姆討論區**](https://discord.gg/hZKQzRfPJM):於 2021/05/08 創立的非官方社群,主要用於討論嘎姆擂台的相關資訊。 ## 作者 **酷可**:[**Code.Gamelet**](/profile/114899766849308759711@google)、[**Gamelet.Online**](https://gamelet.online/user/114899766849308759711@google/board)、[**Youtube**](https://www.youtube.com/@cook1470)
TwilightWarsEventsCook
cook1470
visibility
code
OPEN
info_outline
# P2P檔案分享 ## TL;DR EnhServer與TURN伺服器不會記錄你傳輸之資料,擔心隱私或資安問題請自行考慮後再決定是否使用本專案。 檔案最大應為 (2GiB - 2MiB) (已測試chrome/edge、firefox),若超過建議是採用壓縮檔分包個別傳輸。 註: - Windows的GB是GiB,即1024^3 Bytes - Linux的GB是1000^3 Bytes ## 使用須知 本專案使用WebRTC傳輸資料,藉由EnhServer協助使用者交換連線資訊,以順利建立連線。 本專案無需於EnhServer註冊帳號便可直接使用。 本專案由 **[雪姬](/profile/setsuki)** 提供STUN/TURNS伺服器,最大100Mbps總中轉頻寬。 伺服器可能並不算穩定,若有問題可至 [Discord 群組](https://discord.gg/seJwuzCbWq) 提醒我修復伺服器。 (TURNS為有加密之TURN伺服器,自建預設無加密,有需要可以使用ACME Client/Certbot向Let's encrypt申請證書以啟用加密) 若想要使用自有的STUN/TURN伺服器,請參閱 [Coturn Project on Github](https://github.com/coturn/coturn) 學習如何使用。 也可以自行建立自己的EnhServer,確保流量都可受自己控制,原始碼開源於 [EnhServer-monorepo on github](https://github.com/setsuk1/EnhServer-monorepo) 上。 ## 起因 有時想臨時分享檔案,但又擔心透過雲端硬碟傳遞資料沒有隱私。 因此建立起此專案,可以不讓第三方擁有自己的資料。 雖然也可透過EnhServer提供之訊息交換功能傳遞分塊。 但一來會對EnhServer的頻寬與記憶體帶來挑戰,二來則是瀏覽器端不便對資料進行處理。 再加上會帶來一些些複雜度,於是便透過WebRTC簡化這個流程。 ## 細節 (不關心可跳過) 首先先了解何為WebRTC。 WebRTC為於網路上實現之實時通訊。 需要兩類資料以建立連線:SDP資訊(offer/answer)與ICE資訊(IP、port、etc.) 首先使用者雙方須先交換SDP資訊,此部分如同連線之鑰匙與鎖,雙方不匹配就無法成功建立連線,該部分由EnhServer中轉。 當SDP交換完成時,雙方會各自向STUN/TURN伺服器取得可使用的連線資訊(ICE Candidate)。 之後會再透過EnhServer交換ICE資訊,並嘗試建立起連線。 而取得資訊可以透過兩類協議:STUN協議、TURN協議。 前者用來產生端到端連線,沒有任何中轉,但是對網路(NAT類型)有所要求。 後者則是透過一中轉伺服器轉發流量到對方一側,對NAT類型無要求,連線成功率提高許多,通常於STUN失敗時使用。 ## References MDN(Mozilla Developer Network Web docs) - **[RTCPeerConnection API](https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/RTCPeerConnection)** - **[RTCDataChannel API](https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel)** - **[RTCDataChannel Example](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Simple_RTCDataChannel_sample)** iT邦幫忙 - **[菜雞前端邁入網頁即時通訊(WebRTC)之旅](https://ithelp.ithome.com.tw/users/20129521/ironman/3138)** ## Authors **[雪姬](/profile/setsuki)** **[不會取名字](/profile/buhuechuminzu)**
P2PFileSharing
setsuki
visibility
code
OPEN
info_outline
# pixi_spine_test One Paragraph of project description goes here ## Getting Started (For a game project) Write some tips or instructions how to control in your game. (For building a module) Write a piece of codes to demostrate how to use this module. ```typescript function examples() { } ``` ## Authors **[Haskasu](/profile/Haskasu)**
pixi_spine_test
Haskasu
visibility
code
OPEN
info_outline
# Ryvexia2 One Paragraph of project description goes here ## Getting Started (For a game project) Write some tips or instructions how to control in your game. (For building a module) Write a piece of codes to demostrate how to use this module. ```typescript function examples() { } ``` ## Authors **[cook1470](/profile/cook1470)**
Ryvexia2
cook1470
visibility
code
OPEN
info_outline
# CookPixiUI2 這是一個主要用於 Code.Gamelet Pixi v8 的 UI 模組。 <font color=red>**(本專案僅支援 [Pixi](https://code.gamelet.com/edit/Pixi) 模組,使用 [Base](https://code.gamelet.com/edit/Base) 模組的專案請勿載入此模組,否則會壞掉。)**</font> ## 元件介紹 本專案說明文件皆建立在 Pixi 舞台長 960 寬 540 的情況之下,在使用 Pixi 之前,請先確保你已經正確的初始化 Pixi。 1. 使用 **`then`** 等待。 ```ts // 初始化 pixi CG.Pixi.pixi.initialize({ stageWidth: 960, // 舞台寬度 stageHeight: 540 // 舞台高度 }).then(() => { // 初始化完成後... }); ``` 2. 使用 **`async`、`await`** 等待。 ```ts // 定義一個 async 函數 async function main() { // 在 async function 中,可以使用 await 來等待 Promise 完成。 await CG.Pixi.pixi.initialize({ stageWidth: 960, // 舞台寬度 stageHeight: 540 // 舞台高度 }); // 初始化完成後... } // 呼叫 main 函數 main(); ``` - <a href="cg://source/CG.CookPixiUI2/Readmd/ScrollView.md">ScrollView(滑動容器元件)</a> - <a href="cg://source/CG.CookPixiUI2/Readmd/ListView.md">ListView(清單元件)</a> - <a href="cg://source/CG.CookPixiUI2/Readmd/DynamicListView.md">DynamicListView(動態清單元件)</a> - <a href="cg://source/CG.CookPixiUI2/Readmd/ListViewCell.md">ListViewCell(清單項目元件)</a> ## Authors **[cook1470](/profile/cook1470)**
CookPixiUI2
cook1470
visibility
code
OPEN
info_outline
# CookPixiUI 這是一個主要用於 Code.Gamelet Pixi v5 的 UI 模組。 ## 元件介紹 本專案說明文件皆建立在 Pixi 舞台長 960 寬 540 的情況之下,在使用 Pixi 之前,請先確保你已經正確的初始化 Pixi。 ```ts // 初始化 pixi,長 960 寬 540 CG.Base.pixi.initialize(960, 540); ``` - <a href="cg://source/CG.CookPixiUI/Readmd/ScrollView.md">ScrollView(滑動容器元件)</a> - <a href="cg://source/CG.CookPixiUI/Readmd/ListView.md">ListView(清單元件)</a> - <a href="cg://source/CG.CookPixiUI/Readmd/DynamicListView.md">DynamicListView(動態清單元件)</a> - <a href="cg://source/CG.CookPixiUI/Readmd/ListViewCell.md">ListViewCell(清單項目元件)</a> ## Authors **[cook1470](/profile/cook1470)**
CookPixiUI
cook1470
visibility
code
OPEN
info_outline
# emptyProject 這是一個已經載入pufferfish's playground的專案 ## Introduction 在遊戲內說話會自動啟動指令 <br> 像是如果玩家在遊戲內說了henshin <br> 如果henshin是指令就會直接生效 <br> 有什麼指令都可以在import libraries找,指令都會是小寫 <br> <br> ``` namespace CG.pufferfishsPlayground3.riderSenderUtils { export declare class Boostuppls { constructor(); static boostuppls(e: any): void; } } ``` 這種放在riderSenderUtils 的functions代表這是一個可以使用的指令 <br>有些是單一指令,像是boostuppls,角色直接說boostuppls就有效了 <br>henshin、boostuppls、bombpls都是直接有效的指令 <br>boostuppls 也可以補參數,像是boostuppls 5,中間放空白就能補參數 <br>有哪些參數可以補我還沒有特別整理,之後會再做教學 ## Authors **[pufferfish_01](/profile/pufferfish_01)**
emptyProject
pufferfish_01
visibility
code
OPEN
info_outline
光暈的存檔系統有點複雜 光暈戰技裡面有ACTOR 與玩家 其中 如果你要存檔 你要用玩家的ID 有些事件可以找到如 玩家加入遊戲防 玩家按下鍵盤 而角色殺死攻擊者代碼就算是玩家 它代表的是ACTOR 並不是玩家ID
存檔系統測試
dillenhub
visibility
code
OPEN
info_outline
# Playground 專門用來快速在畫板上塗塗抹抹的專案。 ## Getting Started 摳出來成為你自己的新專案後,可用以下幾種工具(在/libs裏的工具)快速畫圖。 ```typescript // 畫一個紅色的圓 draw.circle(0, 0, 100, {fillColor: 0xFF0000}); // 打開一個確認視窗 dialog.confirm('Are you sure?', 'Click confirm if you think it is ok.') .then((confirm) => { if(confirm) { console.log('User confirmed.'); } }); // 收集資料畫長條圖 let dataCollector = new DataCollector(); dataCollector.addData('一月', 1, 2); dataCollector.addData('二月', 2, 10); dataCollector.addData('三月', 3, 5); dataCollector.addData('四月', 4, 6); dataCollector.showChart('第一季', 'bar'); ```
agar.io
dillenhub
visibility
code
OPEN
info_outline
# CgEventsLib2 One Paragraph of project description goes here ## Getting Started (For a game project) Write some tips or instructions how to control in your game. (For building a module) Write a piece of codes to demostrate how to use this module. ```typescript function examples() { } ``` ## Authors **[Haskasu](/profile/Haskasu)**
CgEventsLib2
Haskasu
visibility
code
OPEN
info_outline
# Server2 One Paragraph of project description goes here ## Getting Started (For a game project) Write some tips or instructions how to control in your game. (For building a module) Write a piece of codes to demostrate how to use this module. ```typescript function examples() { } ``` ## Authors **[Haskasu](/profile/Haskasu)**
Server2
Haskasu
visibility
code
OPEN
info_outline
光暈編程語言實驗室
CumCat
visibility
code
OPEN
info_outline
# 五十音 ~~BINGO~~ 這是一個用來練習五十音的小遊戲。 可以在主頁面設定要以平假名或是片假名為主。 開始後會產生 5 x 5 的隨機假名表,並且隨機產生對應的題目,如一開始選擇平假名,則題目將為片假名,根據題目選擇對應的假名即可圈選。 快來測試看看自己的速度如何吧! ~~花了一個晚上做的,原本要做 BINGO,但連線之後有機會再說吧~~~ ## Authors **[cook1470](/profile/cook1470)** ## 素材 ### Sprite - [basic-gui-bundle](https://penzilla.itch.io/basic-gui-bundle) - [Bing image creator](https://www.bing.com/images/create) ### Music - [Bossa Nova](https://opengameart.org/content/bossa-nova) ### Sound Effects - [Haskasu](https://code.gamelet.com/profile/Haskasu/assets) - [cook1470](https://code.gamelet.com/profile/cook1470/assets)
GojuuonBingo
cook1470
visibility
code
OPEN
info_outline
# EnhServer 為了解決一些CG功能上的缺失,故實作此Lib。 包含變數無法跨專案使用,以及無法跨專案實作大聊天室。 (可能只是不知道方法) 未來將會逐步補上缺失的功能,範例後端請參照[此Github repo](https://github.com/setsuk1/EnhServer-monorepo),歡迎發起PR。 以及可以加入[Discord群組](https://discord.gg/seJwuzCbWq)一起討論,並共同討論功能方向。 初期可能不穩定,建議自建Server。 **且安全性並非此Lib的第一考量,此Lib主要是作為補充功能使用。** ## 如何使用 主要是透過下列方法進行初始化: ```typescript server.initialize(options) ``` options部分為可選選項,若參數為空則預設連線至Enh之後端伺服器。 預設狀態本模組會export一個server物件提供操作,若是希望使用多個instance,僅須透過下列方法: ```typescript const customServer = new EnhServer(); customServer.initialize(options); ``` 之後透過下列方式取得一對一傳訊的資料: ```typescript let context = { handler(data: any, senderCode: string) { console.log(data); } } server.msgManager.on(UserEventList.MSG.UNICAST, context.handler, context); ``` --- ## 呼叫功能 作為範例,下面舉出廣播至全體的功能如何使用: ```typescript let cmd = new Command(SocketEventList.USER, new BroadcastToAllEvent({ data: "Hi there." })); server.sendCommand(cmd); ``` 由此便可送出"Hi there."訊息到Server上的所有使用者。 至於其餘功能目前尚未確定如何說明,待補。 ## Authors **[EnhProject](/profile/EnhProject)** - **[不會取名字](/profile/buhuechuminzu)** - **[雪姬](/profile/setsuki)**
EnhServer
EnhProject
MORE RESULTS
ⒸCode.Gamelet.com |
Privacy Policy
|
Terms of Service