Minecraft(我的世界)中文论坛
标题: 【TCP|Ms】3D打砖块—1.9小游戏
作者: MsYqgzt 时间: 2016-1-30 11:05
标题: 【TCP|Ms】3D打砖块—1.9小游戏
本帖最后由 MsYqgzt 于 2016-8-7 18:11 编辑
哟大家好~这里是考试归来的Ms~今天给大家带来的是考后制作的小游戏作品—3D打砖块【Pong】
这个作品并没有周全考虑到游戏性的问题,比较偏向技术向的演示,所有要过关的话难度是蛮大的_(:зゝ∠)_
这里是较为简短的演示视频,希望大家给个五星评价~
地址 http://www.bilibili.com/video/av3696469/
http://static.hdslb.com/miniloader.swf?aid=3696469&page=1
存档在下面放出、
那么开始这次的技巧分享,这个打砖块啊,主要特点在于球,球体模型是材质包的作用。
可以看到是一个带有发光透视效果的球体物品模型,用到了1.9的{Passengers}和计分板的tag
- /execute @e[type=ArmorStand,tag=Board] ~0.5 ~ ~ /summon ArmorStand ~ ~ ~ {Invulnerable:1b,Invisible:1b,NoGravity:1b,CustomName:"Ball",Passengers:[0:{id:"Item",Item: {id:"minecraft:sea_lantern",Count:1b,Damage:0s},Glowing:1b,Tags:[0:"Ball"],CustomName:"Ball",PickupDelay:32767,Age:-32768}]}
复制代码
整个地图的所有运动组件都是以盔甲架为载体。一幅图直观表达

作为具有三维矢量运动属性的球,需要创建 三维变量 和 反弹判定 的变量,二者接口衔接,效果就达到了。同时考虑bug的触发问题,球体移动的速度不能过大。【否则穿墙飞出场地】

以坐标系为标准,指针方向为正,反方向为负。指定变量值为45
- /tp @e[type=ArmorStand,score_x=45,score_x_min=45,name=Ball] ~0.2 ~ ~
复制代码- /tp @e[type=ArmorStand,score_x=-45,score_x_min=-45,name=Ball] ~-0.2 ~ ~
复制代码- /tp @e[type=ArmorStand,score_y=45,score_y_min=45,name=Ball] ~ ~0.2 ~
复制代码- /tp @e[type=ArmorStand,score_y=-45,score_y_min=-45,name=Ball] ~ ~-0.2 ~
复制代码- /tp @e[type=ArmorStand,score_z=45,score_z_min=45,name=Ball] ~ ~ ~0.2
复制代码- /tp @e[type=ArmorStand,score_z=-45,score_z_min=-45,name=Ball] ~ ~ ~-0.2
复制代码
如何取反的问题其实不难,穷举方法很多,个人使用的是设定一个定值—direction假名的变量为-1
场地内部裹着一层屏障方块。探测碰撞
- /execute @e[type=ArmorStand,name=Ball] ~ ~1 ~ detect ~0.3 ~ ~ minecraft:barrier 0 /scoreboard players operation @e[type=ArmorStand,score_x_min=30,score_x=60,c=1,name=Ball] x *= direction condition
复制代码- /execute @e[type=ArmorStand,name=Ball] ~ ~1 ~ detect ~ ~0.3 ~ minecraft:barrier 0 /scoreboard players operation @e[type=ArmorStand,score_y_min=30,score_y=60,c=1] y *= direction condition
复制代码- /execute @e[type=ArmorStand,name=Ball] ~ ~1 ~ detect ~ ~ ~0.3 minecraft:barrier 0 /scoreboard players operation @e[type=ArmorStand,score_z_min=30,score_z=60,c=1] z *= direction condition
复制代码
反方向原理相同,将X、Y、Z的存储数据直接取反,运动状态与tp的系统联动,产生反弹效果。
碰撞砖块并击碎也是利用了距离差来实现。
这里的所有砖块都是羊毛,通过材质包更改贴图。【除了裂纹砖是原型贴图】
这样一来穷举工作量就小了很多
- /execute @e[type=ArmorStand,name=Ball,score_Fire=0] ~ ~1 ~ detect ~0.3 ~ ~ minecraft:wool -1 /scoreboard players operation @e[type=ArmorStand,score_x_min=30,score_x=60,c=1,name=Ball,score_Fire=0] x *= direction condition
复制代码- /execute @e[type=ArmorStand,name=Ball,score_Fire=0] ~ ~1 ~ detect ~0.3 ~ ~ minecraft:wool -1 /setblock ~1 ~ ~ minecraft:air 0 destroy
复制代码
将石砖打成裂纹砖的方法相同,改变替换方块的种类即可。
有兴趣研究或者游玩的同学,这里放上下载地址:http://pan.baidu.com/s/1kVOtAbt
=================END====================
[groupid=1009]The Command's Power[/groupid]
作者: 2563330890 时间: 2016-1-30 11:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: lorinder 时间: 2016-1-30 11:53
这个厉害……
不精不是人系列……
作者: chyx 时间: 2016-1-30 11:55
我想知道你是怎么知道打到羊毛的哪个方向的
作者: MsYqgzt 时间: 2016-1-30 13:25
跟反弹的原理相同,只要精确到在破坏方块之前
作者: 屠灵神 时间: 2016-1-30 21:02
妥妥五星,妥妥净化
存档下载好就可以玩咯。
对了,支持多人么?
作者: MsYqgzt 时间: 2016-1-31 09:57
只是单人地图
作者: 莫相识丶 时间: 2016-6-21 16:19
6666666666666666
作者: a1275777218 时间: 2016-7-8 18:41
可以啊,楼主,不错
作者: 1610624536 时间: 2016-7-9 16:45
太厉害了这个,管理快加精
作者: 大萨貂 时间: 2016-7-9 17:25
小游戏很不错。
作者: Maro丨马络 时间: 2016-7-15 20:42
非常好的游戏啊,哈哈
作者: a煞手 时间: 2016-7-17 18:25
eeeeeeeeeeeeeeeeeeeeeeeee
作者: 祖宗 时间: 2016-7-17 19:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 核火箭 时间: 2016-7-22 19:32
666666666666666666666666666666666666666666666666666666666666666666666666666666666666
楼主你太帅了
作者: lihaoru 时间: 2016-7-23 16:29
233顶啊顶啊顶搂搂上
作者: 我居然不会 时间: 2016-7-23 17:02
.............