介绍
在上篇文章中我们已经了解到了该游戏引擎的基本搭建过程。比如灯光,摄像头,场景、事件监听等。这里我就不做多介绍。运用以上知识点。我们此时做一个小游戏画图。
效果图
源代码
1.先监听事件是否碰撞到了画板
2.然后判断动作,手指按住屏幕,松开屏幕,滑动屏幕。
3.将点坐标存储起来,将所有线存储起来
4.滑动屏幕时,先把线删除掉,然后根据存储的点坐标重新连线,防止每次重复画线。
5.松开屏幕则将存储的点与线重新创建一个数组存储。
核心代码如下:
var points = []; // 存储所有点的位置
var lines = []; // 存储所有线段的模型
let allData = [{ lines: [], points: [] }] // 所有数据
points = allData[0].points
lines = allData[0].lines
let isDown = false // 是否按下
let isEnd = false
// 对场景添加鼠标点击事件
scene.value.onPointerObservable.add((eventData) => {
// 射线投射,用于检测鼠标点击的是场景的哪一部分
var ray = scene.value.createPickingRay(scene.value.pointerX, scene.value.pointerY, BABYLON.Matrix.