微信小游戏使用three.js开发总结2023.9.12

微信小程序开发总结

1技术选择

我这里使用的是three.js 进行的开发,目前开发了《酒馆卡牌》《3D决对》两款微信小游戏。
其中 《酒馆卡牌》模仿的是iphone 美区的游戏,注重看在游戏没有复杂的战斗,在没有服务器的情况下依旧可以运行。由于本人出生java开发。对美术效果,和设计比较粗糙,所以选择了和别人合作。找到了大学设计院的同学帮忙出了ui设计,美术设计,也包括对整个产品的悲剧的构思。但是后来由于小程序申请的时候名称就叫《酒馆卡牌》,对于设计同学施青春的《墓道探险》名称并未进行实际在游戏中展示。微信小程序对于游戏内容,游戏logo,游戏名称有一定的要求。如果三者不能和实际显示的内容不一致,审核不会进行通过。所以这三点需要注意。另外,微信小游戏logo最后具有游戏名称,并且在加载显示的第一页进行游戏名称的显示,会大大提高游戏审核通过的概率。以下是《酒馆卡牌》入口也可以微信搜索微信小游戏《酒馆卡牌》进行试玩。
酒馆卡牌

2 three.js开发的另一款游戏《3D决对》

《3D决对》原名《决对》。来源于b站 好胃口 的推荐,在《酒馆卡牌》开发结束后技术达到了限制。同时也感觉到开发一款游戏要需要的达到的体量,比开发一款管理系统,或者网站需要的内容更为丰富。比如开发网站需要的动画量可能是1,开发游戏需要的动画量就是10。并且游戏开发还需要配音。在b站看了好胃口众多游戏的推荐后,最后选中了这款类似西部牛仔对决的游戏。
原游戏链接
原因:画面少,逻辑在技术范围内,没有复杂的后端,后期可拓展性比较强。
同样在开发的过程中使用的three.js 进行了开发。同时观看和借鉴了一位法国的开发者Bruno Simom
很多内容都受益匪浅,在这里表示感谢。谢谢。
刚开始的游戏页面
暗牌开始游戏
明牌开始游戏
后期从视频中学到通过blender 模型可以加载场景。所以对blender 进行学习。改进后的使用blender建模后的《3D决对》画面
3D决对

对于在微信小游戏开发中使用three.js的一些技术难点

1.首先微信小游戏属于5H游戏,加载的canvas进行开发。微信在5h的基础上进行了包装。并且微信小游戏是2017年12月28号上线,对于h5兼容 webRender 1 而three.js 在r119版本后更到了 webRender 2,所以在three.js 推荐使用r118之前的版本。
2.其中也是使用了 ts进行微信小程序和three.js的兼容
使用下来感觉比较繁重。2对ts不太熟悉。所以我这里并未对git的这个版本进行继续开发。

最后将《3D决对》地址

3D绝对

完整案例 可作为微信开发微信小游戏使用three.js的参考

GiteeDemo案例
另外附本人微信 加微信可进群探讨,游戏开发微信小游戏或者探讨的,或者有意开发微信小游戏的都可以找我。本人微信号:ljd0400

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在uniapp微信小程序中使用three.js导入gltf模型包,你可以按照以下步骤进行操作: 1. 将gltf模型文件放置在uniapp项目的静态资源目录中,比如`static/models`。 2. 在uniapp页面或组件的js文件中引入three.js库和GLTFLoader。 ```javascript import * as THREE from 'three'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'; ``` 3. 创建一个canvas元素作为渲染器的渲染目标。 ```html <template> <canvas id="canvas"></canvas> </template> ``` 4. 在mounted钩子函数中编写加载和渲染模型的代码。 ```javascript mounted() { const canvas = document.getElementById('canvas'); const renderer = new THREE.WebGLRenderer({ canvas }); const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, canvas.clientWidth / canvas.clientHeight, 0.1, 1000); camera.position.z = 5; const loader = new GLTFLoader(); loader.load('../../static/models/model.gltf', (gltf) => { const model = gltf.scene; scene.add(model); // 设置模型的初始位置、旋转等属性 model.position.set(0, 0, 0); model.rotation.set(0, 0, 0); model.scale.set(1, 1, 1); }); function animate() { requestAnimationFrame(animate); // 更新模型、相机等状态 renderer.render(scene, camera); } animate(); } ``` 请确保将`../../static/models/model.gltf`替换为你实际的模型文件路径。 这样,当页面或组件加载后,就会渲染gltf模型在canvas上。 希望对你有所帮助!如有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值