MoonBit 游戏开发赛道
被降维打击了😭
不过这个佬是有团队 + 经验 + 老早就开始做的
总之不楽😡,狠狠熬夜加工
后面当个人更新楼了,等官方修好了预览加上自己的也有可玩性了就把游戏放主楼
😡为了奶茶钱!
門友有什么意见也可以提
比如把門友当 boss 的名字什么的
我之前有个同学拿到了大亚湾的实习
好像就是做月兔语言开发的
ぜーんぶ弾けなーい!
好强
我的抽象能力完全不够让我去涉及 pl 这个领域,所以只能当赛博土木佬了
要是能进线下了可以有面试机会,到时候再去细问问 (`ε´)
前文 @Soyo34325 提到的 IDEA 实习生来冒个泡~
看到交大有同学对 MoonBit 有兴趣挺欣慰的,目前游戏赛道人还不多,大家都有机会,已支持 😉
顺带一提,其实「 汪汪立功」是我朋友,同时也是 MoonBit Core 核心贡献者之一,很早就开始在社区活跃了。
前文 @CAIMEOX 提到的汪汪队来了,欢迎同学关注 MoonBit 语言和相关的活动!使用语言或者游戏开发有什么需要帮助的地方可以和我说,我很愿意帮忙的!加油同学!
哈哈哈哈哈哈,这是给 MoonBit 的开发团队给炸出来了 🤣
ぜーんぶ弾けなーい!
哈哈哈不是的,@CAIMEOX 是之前在那边实习,现在回来上学了,我是一直在社区活跃,还不是开发团队的
我超😭😭😭,引到大的了
看到官方发的人物专访实在是仰望
我会带着門友的祝福改进游戏的
#弱质氵
因为是速成的没怎么看文档,昨天突击的时候大半时间卡在了怎么模拟出按键的粘滞感 (不会按住就飞走),打算做 rpg 所以要保证选中选项
昨晚的实现是通过全局计数器 (这时候连刷新率都不知道) 来模拟的,每监测到 10 次就进行移动,很蠢且对单次按键不友好
if @wasm.get_gamepad().button_left && choice.option >= 10 {
choice.option = @math.maximum(choice.option - 2, 10)
} else if @wasm.get_gamepad().button_right && choice.option <= 30 {
choice.option = @math.minimum(choice.option + 2, 30)
}
menu(choice.option - choice.option % 10)
今天看了 mbt 的样例文档,才知道刷新率是 60Hz,于是写了个结构体存储全局计时器和上次按键计时器,每 20 帧判断一次是否能执行按键
虽然实现了单点支持但还是没有粘滞,一直按着还是可以移动
😡被自己红温的时候去查了 wasm 的官方文档,发现已经给了怎么去判断单次按键了
浪费了 1 个小时
// 最后写出来的
pub fn buttonPress() -> Unit {
let gamepad : @wasm.GamePad = @wasm.get_gamepad()
if gamepad.button_left != gameStatus.gamepad.button_left &&
gamepad.button_left &&
choice.option > 1 {
choice.option -= 1
} else if gamepad.button_right != gameStatus.gamepad.button_right &&
gamepad.button_right &&
choice.option < 3 {
choice.option += 1
}
gameStatus.gamepad = gamepad
}
不过看的是 go 的示例,所以能够直接用 x&(x^y)
mbt 存储的是 readonly 加 bool 类型,不能直接按位操作,看着有点复杂
老实去读文档先了
今晚战果
- 实现了血条
- 优化了按键选取
- 知道大概怎么改颜色了
还好另一个小时没被浪费)
不过离真可玩还差不少,明天起来再干活
mbt 的轮子应该不需要你做任何位运算,都帮你包装好了,看看 API 可能帮助更大
今日没啥进度,因为被拉出去玩了一天
稍微画了一些小图标(防御的盾牌,攻击的剑,十字的治疗)
然后对着佬的 tank demo 理解了下一些函数的作用,顺便学习高级用法
之后就是构思一些敌人的数值和 ai 了,然后加一加次级菜单
大世界暂时没什么想法,可能是宝可梦那种触碰敌人进入战斗
rpg 必要的属性也还没构思好
希望不会遇到群里说的内存爆的问题
門友有什么想法也可以说说🤤
打算做个监测 ↑↑↓↓←→←→xz 的代码然后弹个交大門回满血

果然 po 没有美术天赋
发现做不出碎盾效果了
现在问题是默认字体好大啊😡
去重新设计一套 po 是做不到了,想办法精简下英文了
哦官方给样例了,我去抄一套
放弃了,还要找套精灵图,还是精简文字吧
再也不画像素画了😭
没用精灵图手写的,结果就花了半个小时了
至少有个样子了,狠狠 Konami
明天应该能有 0.0.2 了
看到管道运算符大脑爆炸了
(つд⊂)
完全没接触过,然后看写法就变得好魔幻了
|>ignore 是个什么意思啊
忽略输出🤔
不过我应该用不到
吃个饭再学
上课寂寞无聊 🔞
一个人偷偷敲代码 🔞
激情月兔 🔞
其实就加了个欢迎界面,优化了下战斗界面
都是参考的上面那个
在想首页怎么画一个城堡,但光是复刻一把剑进去就累坏 po 了
( ;`д´; )
还好没有投入 gamejail,不然自己会完全栽在美术上了
等晚上回去把 icon 移动到正确的位置就可以 0.0.2 了
po 小睡一会起来画像素画了

花了个 mini 版的才发现得放大
心死了
参考的是这个,貌似是免费使用的,要是不让用我再小修改吧
你为什么不是四色你为什么不是四色你为什么不是四色😡

羊咩冲锋枪
門友觉得哪个可爱点
今晚进度
激烈的 ppt 平移动画
还是有不少 bug,比如判断出伤是用的等于平移结束后的那一帧,所以会有概率丢伤
然后对面动的时候还是可以按按键
明天再修了,今天只敲了半小时,速度越来越快力 (`ヮ´ )σ`∀´) ゚
后面肯定要设计不同的攻击,不过咩咩就咩咩冲击好了
花了一个小时解决 map 的问题
🫠Option 是个什么鬼类型啊
我只是想单纯的取一下 map["xxx"] 的值
但是官方给的文档又没说,最后还是去 lib 的 readme 才知道怎么取值的
hmm 是为了实现可选参数,但让 map 多此一举还是好怪 ()
慢慢适应了,可能是我还没到能熟练使用吧
写上头了
0.0.2 咧,交个 pr 去
还有一些小 bug 等着修,底层大概就这样了
先睡了
因为设置了暴击差点被一头创死,所以给高了基础血量,之后平衡会改的
比如预期敌人的下一步行动会显示在血条左侧 (剑和治疗的作用
然后还有一些反击手短,都是 ai 的时候考虑了
好像只有大佬的 tank 有很多 star,其他的都没多少 star
主要是就我一个没做完就求 star 吧
发动社团之力😈
哈哈哈第二个,好傻好可爱,就喜欢这种傻乎乎的
啊?Tank 很多吗,我这边看才三个,btw 我不是做 Tank 的(
这是 modern 编程语言里面很正常的一个东西,Rust 就是全套在 Option 里面的,因为你 get 取到的值不一定是安全的,你给的 index 很可能定位不到值,这时候就会出现 Runtime Error,Option 等于给出了一个到底有没有取到值的包装。
原来这样 (oT-T) 尸
写完再好好学习 pl
好有创意)
😈你们的创意都会成为我大地图 cow level 的一部分

为嘛我的浏览器上面会出现这种情况,之前玩坦克大战也是一样

ぜーんぶ弾けなーい!
哈哈哈哈,在 Safari 上面玩上了!
感觉挺有意思的,已经 Star 了
ぜーんぶ弾けなーい!
现在是惯例的 po 深夜 codeing 时间
要🎃了,所以今天的目标就是画一个🎃怪,顺便加一下主角形象
至于怎么等比例放大,还在想)
你为什么不是四色你为什么不是四色

....你还是就留个头吧
忘了身体也要颜色了

然后对比起来是真的小啊,还是得等比例一下

不仅没放大还不可名状了..
今晚应该就是搭轮子了

也没大多少,放弃了
咩咩就要小小的
去玩了会游戏
然后花 10 分钟解决了自己的弱质问题

总之 ok 了

超级巨大咩咩毁灭世界

超级巨大南瓜 (存疑) 毁灭世界
🤔越来越屎山了,不可避的问题
项目里变量乱飞,还没复用结构体
现在的问题是 mbt 里支持类似 go 的 func 当 map 值吗
像下面这种
var book map[string]func()
func test() {
fmt.Println(
"test")
}
func tst() {
fmt.Println(
"test")
}
func main() {
book = make(map[string]func())
book["ss"] = test
book["sss"] = tst
book["ss"]()
}
主要每个敌人的 ai 都是独立的,动画也是,不能用一个::概括全了
放弃了,单文件写单文件的
po 已经单文件里同时出现了 draw_bits 和 checkOutmap 两种命名法了