Merge pull request #134 from ckcz123/v2.0

V2.0
This commit is contained in:
Zhang Chen 2018-05-27 23:41:51 +08:00 committed by GitHub
commit ae5be2cefc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 412 additions and 81 deletions

View File

@ -48,6 +48,7 @@ HTML5 canvas制作的魔塔样板支持全平台游戏
│ ├─ 便捷PS工具.exe # 能只用复制和粘贴来快速对素材进行PS操作。 http://github.com/ckcz123/ps/
│ ├─ 地图生成器.exe # 能从一张截图识别出来具体的数字数组,方便复刻已有的塔。 http://github.com/ckcz123/map_generator/
│ └─ 伤害和临界值计算器.exe # 一个能帮助计算怪物的伤害和临界值的小工具。 http://github.com/ckcz123/magic-tower-calculator/
├── /启动服务(mac版).app/ # 启动服务的mac版本。
├── editor.html # 可视化地图编辑工具
├── index.html # 主程序,游戏的入口
├── main.js # JS程序的入口将动态对所需JS进行加载
@ -57,6 +58,24 @@ HTML5 canvas制作的魔塔样板支持全平台游戏
## 更新说明
### 2018.5.27 V2.3
* [x] 启动服务和便捷PS工具Mac版
* [x] 地图编辑器可以右键复制或移动图块
* [x] 事件while循环处理
* [x] 事件:等待用户操作并获得按键或点击信息
* [x] 地图数据统计
* [x] 衰弱可以减少攻防的比例
* [x] 便捷PS工具可以批量导入素材
* [x] 除Autotile外均可自动注册
* [x] 支持status:x获得当前坐标
* [x] core.debug()改成调试模式可以Ctrl穿墙
* [x] 新建地图可以保留楼层属性
* [x] 地图编辑器可用PageUp和PageDown切换楼层
* [x] 提供大量素材,可直接取用
* [x] 重写大部分教程,新增大量拓展描述
* [x] 大量细节进行优化所有已知的bug进行了修复
### 2018.5.6 V2.2
* [x] 事件坐标可用变量指定("loc": ["flag:x", "flag:y"])

View File

@ -456,7 +456,7 @@ editor_mode = function (editor) {
printe("该楼层已存在!");
return;
}
if (!/^[a-zA-Z_]*[a-zA-Z0-9_]*$/.test(newFileName)) {
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(newFileName.value)) {
printe("楼层名不合法!请使用字母、数字、下划线,且不能以数字开头!");
return;
}

View File

@ -1,6 +1,6 @@
# V2.0版本介绍
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
目前样板已经更新到V2.0版本以上本章将对V2.0的一些内容进行介绍。

View File

@ -1,6 +1,6 @@
# 附录: API列表
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
**这里只列出所有可能会被造塔者用到的常用API更多的有关内容请在代码内进行查询。**

View File

@ -1,6 +1,6 @@
# 元件说明
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
在本章中,将对样板里的各个元件进行说明。各个元件主要包括道具、门、怪物、楼梯等等。
@ -243,6 +243,35 @@ floorId指定的是目标楼层的唯一标识符ID
!> iOS平台以及部分浏览器不支持获得当前网络状态此时即使在使用Wifi也必须要用户点击“音乐开关”才能播放音乐。
## 录像
HTML5魔塔一大亮点就是存在录像系统可以很方便进行录像回放。
当你在游戏的过程中,随着你的操作,录像也会被依次记录。游戏结束后将提示是否下载录像,上传成绩时也会上传你的录像信息。
在菜单栏-同步存档中,可以直接对当前录像进行下载。
!> 录像记录的是你当前的路线(本质上是模拟键盘操作),是一个纯文本文件,占用空间很小!
录像的回放主要有两种方式:
1. 保存成的录像文件(.h5route文件):在标题界面点录像回放,再选择文件即可。
2. 游戏过程中时的当前录像随时按R可以进行回放手机端则长按任何位置3秒以上调出虚拟键盘再按R。
录像播放过程中,可以进行如下操作:
- **暂停/播放:** 按空格可以随时暂停或播放录像。
- **加速:** 按X可以加速录像播放最高可达6倍速。
- **减速:** 按Z可以减速录像播放最低可达0.3倍速。
- **停止:** 按ESC可以立刻停止录像播放并返回正常游戏。
- **回退:** 按A可以回退到上一个录像节点录像播放过程中每50步存一个录像节点
- **存档:** 按S可以在录像播放过程中进行存档。
- **查看手册:** 按C可以在录像播放过程中查看怪物手册。
上述操作在手机端均有工具栏的对应按钮可点击操作。
如果录像出现问题请加群539113091找小艾反馈Bug。
## 操作说明
本塔主要支持鼠标(触摸屏)操作和键盘操作。
@ -259,6 +288,7 @@ floorId指定的是目标楼层的唯一标识符ID
键盘操作快捷键如下:
- **[CTRL]** 跳过对话
- **[Z]** 转向
- **[X]** 打开/关闭怪物手册
- **[G]** 打开/关闭楼层传送器
- **[A]** 读取自动存档
@ -267,7 +297,6 @@ floorId指定的是目标楼层的唯一标识符ID
- **[T]** 打开/关闭工具栏
- **[ESC]** 打开/关闭系统菜单
- **[H]** 打开帮助页面
- **[Z]** 转向
- **[R]** 回放录像
- **[SPACE]** 轻按(仅在轻按开关打开时有效)
- **[1]** 快捷使用破墙镐

View File

@ -1,6 +1,6 @@
# 事件
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
本章内将对样板所支持的事件进行介绍。

View File

@ -1,6 +1,6 @@
# HTML5 魔塔样板说明文档
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
众所周知魔塔的趋势是向移动端发展贴吧中也常常能见到“求手机魔塔”的帖子。然而现有的工具中NekoRPG有着比较大的局限性游戏感较差更是完全没法在iOS上运行。而一些APP的魔塔虽然可用但是必须要下载安装对于Android和iOS还必须开发不同的版本非常麻烦。

View File

@ -1,6 +1,6 @@
# 个性化
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
有时候只靠样板本身可能是不够的。我们需要一些个性化、自定义的素材,道具效果,怪物属性,等等。

View File

@ -1,6 +1,6 @@
# 快速上手
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
在这一节中,将详细介绍做一部塔的流程。现在,让我们来做一部单层塔!
@ -9,6 +9,7 @@
你需要有满足如下条件才能进行制作:
- Windows 8以上操作系统Windows 7需要安装.Net Framework 4.0。(能打开同目录下的“启动服务.exe”即可
- Mac系统则需OS X 10.7及以上,能正确打开启动服务(Mac版).app即可。
- Chrome浏览器。其他浏览器可能会导致本地服务器产生闪退等现象。
- 强烈推荐安装一个很好的文本编辑器VSCode。在某些需要直接修改文件的场合可能会非常重要。
@ -18,7 +19,7 @@
## 启动HTTP服务
在根目录下有一个“启动服务.exe”运行之。
在根目录下有一个“启动服务.exe”运行之。Mac版本则双击运行“启动服务(Mac版).app”
![启动服务](img/server.png)

View File

@ -1 +0,0 @@
<html><body><script>window.location='editor.html'</script></body></html>

View File

@ -315,8 +315,11 @@ actions.prototype.keyUp = function(keyCode, fromReplay) {
core.load(true);
break;
case 69: // E
/*
// Cursor is unnecessary!
if (core.status.heroStop)
core.ui.drawCursor();
*/
break;
case 84: // T
if (core.status.heroStop)
@ -1553,7 +1556,7 @@ actions.prototype.clickSettings = function (x,y) {
break;
case 4:
core.status.event.selection=1;
core.ui.drawConfirmBox("你确定要重新开始吗?", function () {
core.ui.drawConfirmBox("你确定要返回标题页面吗?", function () {
core.ui.closePanel();
core.restart();
}, function () {

1
libs/actions.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
libs/control.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
libs/data.min.js vendored Normal file
View File

@ -0,0 +1 @@
function data(){this.init()}data.prototype.init=function(){this.firstData=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.firstData;this.values=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.values;this.flags=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.flags};data.prototype.getFirstData=function(){return core.clone(this.firstData)};

1
libs/enemys.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
libs/events.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
libs/icons.min.js vendored Normal file
View File

@ -0,0 +1 @@
function icons(){this.init()}icons.prototype.init=function(){this.icons=icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1};icons.prototype.getIcons=function(){return this.icons};

1
libs/items.min.js vendored Normal file
View File

@ -0,0 +1 @@
function items(){this.init()}items.prototype.init=function(){this.items=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.items;this.itemEffect=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.itemEffect;this.itemEffectTip=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.itemEffectTip;this.useItemEffect=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.useItemEffect;this.canUseItemEffect=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.canUseItemEffect};items.prototype.getItems=function(){return this.items};items.prototype.getItemEffect=function(itemId,itemNum){var itemCls=core.material.items[itemId].cls;if(itemCls==="items"){var ratio=parseInt(core.floors[core.status.floorId].item_ratio)||1;var curr_hp=core.status.hero.hp;if(itemId in this.itemEffect){eval(this.itemEffect[itemId])}core.status.hero.statistics.hp+=core.status.hero.hp-curr_hp}else{core.addItem(itemId,itemNum)}};items.prototype.getItemEffectTip=function(itemId){var itemCls=core.material.items[itemId].cls;if(itemCls==="items"){var ratio=parseInt(core.floors[core.status.floorId].item_ratio)||1;if(itemId in this.itemEffectTip){return eval(this.itemEffectTip[itemId])||""}}return""};items.prototype.useItem=function(itemId,callback){if(!this.canUseItem(itemId)){if(core.isset(callback)){callback()}return}var itemCls=core.material.items[itemId].cls;if(itemId in this.useItemEffect){eval(this.useItemEffect[itemId])}core.updateStatusBar();if(itemId!="book"&&itemId!="fly"){core.status.route.push("item:"+itemId)}if(itemCls=="tools"){core.status.hero.items[itemCls][itemId]--}if(core.status.hero.items[itemCls][itemId]==0){delete core.status.hero.items[itemCls][itemId]}if(core.isset(callback)){callback()}};items.prototype.canUseItem=function(itemId){if(!core.hasItem(itemId)){return false}if(itemId in this.canUseItemEffect){return eval(this.canUseItemEffect[itemId])}return false};items.prototype.itemCount=function(b){if(!core.isset(b)||!core.isset(core.material.items[b])){return 0}var a=core.material.items[b].cls;if(a=="items"){return 0}return core.isset(core.status.hero.items[a][b])?core.status.hero.items[a][b]:0};items.prototype.hasItem=function(a){return core.itemCount(a)>0};items.prototype.setItem=function(b,c){var a=core.material.items[b].cls;if(a=="items"){return}if(!core.isset(core.status.hero.items[a])){core.status.hero.items[a]={}}core.status.hero.items[a][b]=c;if(a!="keys"&&c==0){delete core.status.hero.items[a][b]}};items.prototype.removeItem=function(b){if(!core.hasItem(b)){return false}var a=core.material.items[b].cls;core.status.hero.items[a][b]--;if(a!="keys"&&core.status.hero.items[a][b]==0){delete core.status.hero.items[a][b]}core.updateStatusBar();return true};items.prototype.addItem=function(c,d){var b=core.material.items[c];var a=b.cls;if(a=="items"){return}if(!core.isset(core.status.hero.items[a])){core.status.hero.items[a]={};core.status.hero.items[a][c]=0}else{if(!core.isset(core.status.hero.items[a][c])){core.status.hero.items[a][c]=0}}core.status.hero.items[a][c]+=d};

1
libs/loader.min.js vendored Normal file
View File

@ -0,0 +1 @@
function loader(){this.init()}loader.prototype.init=function(){};loader.prototype.setStartProgressVal=function(a){core.dom.startTopProgress.style.width=a+"%"};loader.prototype.setStartLoadTipText=function(a){core.dom.startTopLoadTips.innerHTML=a};loader.prototype.load=function(a){core.loader.loadIcons();core.loader.loadImages(core.materials,core.material.images,function(){core.material.images.images={};var b=core.clone(core.images);if(b.indexOf("hero.png")<0){b.push("hero.png")}core.loader.loadImages(b,core.material.images.images,function(){core.material.images.autotile={};core.loader.loadImages(Object.keys(core.material.icons.autotile),core.material.images.autotile,function(){core.loader.loadAnimates();core.loader.loadMusic();if(core.isset(a)){a()}})})})};loader.prototype.loadIcons=function(){this.loadImage("icons.png",function(a,b){var c=core.cropImage(b);for(var d in core.statusBar.icons){if(typeof core.statusBar.icons[d]=="number"){core.statusBar.icons[d]=c[core.statusBar.icons[d]];if(core.isset(core.statusBar.image[d])){core.statusBar.image[d].src=core.statusBar.icons[d].src}}}})};loader.prototype.loadImages=function(d,f,a){if(d.length==0){if(core.isset(a)){a()}return}var c=0;for(var b=0;b<d.length;b++){this.loadImage(d[b],function(g,h){core.loader.setStartLoadTipText("正在加载图片 "+g+"...");f[g]=h;c++;core.loader.setStartProgressVal(c*(100/d.length));if(c==d.length){if(core.isset(a)){a()}}})}};loader.prototype.loadImage=function(d,a){try{var f=d;if(f.indexOf(".")<0){f=f+".png"}var c=new Image();c.src="project/images/"+f+"?v="+main.version;if(c.complete){a(d,c);return}c.onload=function(){a(d,c)}}catch(b){console.log(b)}};loader.prototype.loadAnimates=function(){core.animates.forEach(function(a){core.http("GET","project/animates/"+a+".animate",null,function(b){try{b=JSON.parse(b);var c={};c.ratio=b.ratio;c.images=[];c.images_rev=[];b.bitmaps.forEach(function(h){if(!core.isset(h)||h==""){c.images.push(null)}else{try{var g=new Image();g.src=h;c.images.push(g)}catch(f){c.images.push(null)}}});c.frame=b.frame_max;c.frames=[];b.frames.forEach(function(g){var f=[];g.forEach(function(h){f.push({index:h[0],x:h[1],y:h[2],zoom:h[3],opacity:h[4],mirror:h[5]||0,angle:h[6]||0,})});c.frames.push(f)});core.material.animates[a]=c}catch(d){console.log(d);core.material.animates[a]=null}},function(b){console.log(b);core.material.animates[a]=null},"text/plain; charset=x-user-defined")})};loader.prototype.loadMusic=function(){core.bgms.forEach(function(b){if(/^.*\.mid$/i.test(b)){if(core.musicStatus.audioContext!=null){core.material.bgms[b]="loading";core.http("GET","project/sounds/"+b,null,function(c){try{var f=[];var g=c.length;for(var i=0;i<g;i++){f[i]=String.fromCharCode(c.charCodeAt(i)&255)}var h=core.material.bgms[b]=="starting";core.material.bgms[b]=AudioPlayer(core.musicStatus.audioContext,Replayer(MidiFile(f.join("")),Synth(44100)),true);if(h){core.playBgm(b)}}catch(d){console.log(d);core.material.bgms[b]=null}},function(c){console.log(c);core.material.bgms[b]=null},"text/plain; charset=x-user-defined")}else{core.material.bgms[b]=null}}else{var a=new Audio();a.preload="none";if(main.bgmRemote){a.src=main.bgmRemoteRoot+core.firstData.name+"/"+b}else{a.src="project/sounds/"+b}a.loop="loop";core.material.bgms[b]=a}});core.sounds.forEach(function(b){if(core.musicStatus.audioContext!=null){core.http("GET","project/sounds/"+b,null,function(c){try{core.musicStatus.audioContext.decodeAudioData(c,function(f){core.material.sounds[b]=f},function(f){console.log(f);core.material.sounds[b]=null})}catch(d){console.log(d);core.material.sounds[b]=null}},function(){console.log(e);core.material.sounds[b]=null},null,"arraybuffer")}else{var a=new Audio();a.src="project/sounds/"+b;core.material.sounds[b]=a}});if(core.musicStatus.startDirectly&&core.bgms.length>0){core.playBgm(core.bgms[0])}};

1
libs/maps.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -748,7 +748,7 @@ ui.prototype.drawSettings = function () {
core.status.event.id = 'settings';
this.drawChoices(null, [
"系统设置", "快捷商店", "浏览地图", "同步存档", "重新开始", "数据统计", "操作帮助", "关于本塔", "返回游戏"
"系统设置", "快捷商店", "浏览地图", "同步存档", "返回标题", "数据统计", "操作帮助", "关于本塔", "返回游戏"
]);
}
@ -1921,6 +1921,7 @@ ui.prototype.drawHelp = function () {
core.drawText([
"\t[键盘快捷键列表]"+
"[CTRL] 跳过对话\n" +
"[Z] 转向\n" +
"[X] 打开/关闭怪物手册\n" +
"[G] 打开/关闭楼层传送器\n" +
"[A] 读取自动存档(回退)\n" +
@ -1928,10 +1929,11 @@ ui.prototype.drawHelp = function () {
"[K] 打开/关闭快捷商店选择列表\n" +
"[T] 打开/关闭工具栏\n" +
"[ESC] 打开/关闭系统菜单\n" +
"[E] 显示光标\n" +
// "[E] 显示光标\n" +
"[H] 打开帮助页面\n"+
"[R] 回放\n"+
"[SPACE] 轻按(仅在轻按开关打开时有效)\n" +
"[PgUp/PgDn] 浏览地图\n"+
"[1] 快捷使用破墙镐\n" +
"[2] 快捷使用炸弹/圣锤\n" +
"[3] 快捷使用中心对称飞行器",

1
libs/ui.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
libs/utils.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>17E202</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>MTBuilder</string>
<key>CFBundleIdentifier</key>
<string>com.xiongdianpku.MTBuilder</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>MTBuilder</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9E501</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17E189</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0931</string>
<key>DTXcodeBuild</key>
<string>9E501</string>
<key>LSMinimumSystemVersion</key>
<string>10.10</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2018年 熊典. All rights reserved.</string>
<key>NSMainStoryboardFile</key>
<string>Main</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

Binary file not shown.

View File

@ -0,0 +1 @@
APPL????

Binary file not shown.

View File

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Assets.car</key>
<data>
Y8vFWeV9aMFK2k/Fmvn1VKDb4G4=
</data>
<key>Resources/Base.lproj/Main.storyboardc/3Jh-0i-2oC-view-FlG-D0-fB4.nib</key>
<data>
EN/jmkBY5XqitaaV2kWybEgMtTE=
</data>
<key>Resources/Base.lproj/Main.storyboardc/8cO-Uq-prt-view-GPE-0I-haQ.nib</key>
<data>
vZO5vWZuRi0vaSFqKPCW1qksfDE=
</data>
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
<data>
71E/nyD1JC6i4rw6+kjjVgE/fZA=
</data>
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
<data>
lC9mNWqzXYAYynusmnCrDuM3hvI=
</data>
<key>Resources/Base.lproj/Main.storyboardc/NSViewController-3Jh-0i-2oC.nib</key>
<data>
jBRfznhMbiKUnUxlCD1QLUegGsc=
</data>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
<data>
S9xl+rRRrH6aWKPTrX11XmKhYtA=
</data>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-QqD-oc-2tR.nib</key>
<data>
a5hup3BYBUycbe+iJd/nx+VQ/rA=
</data>
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
<data>
7osH7f7CY2aFRWbCLAy1odTex/M=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Assets.car</key>
<dict>
<key>hash</key>
<data>
Y8vFWeV9aMFK2k/Fmvn1VKDb4G4=
</data>
<key>hash2</key>
<data>
R6hkb6fWvTpPEJXUWnyv4rhwHuVVIqsihlgRCdNNoz4=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/3Jh-0i-2oC-view-FlG-D0-fB4.nib</key>
<dict>
<key>hash</key>
<data>
EN/jmkBY5XqitaaV2kWybEgMtTE=
</data>
<key>hash2</key>
<data>
8KgZX7l1DB4wlq8OlL6h9gk2PUditNbKqqR7qnoHCoc=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/8cO-Uq-prt-view-GPE-0I-haQ.nib</key>
<dict>
<key>hash</key>
<data>
vZO5vWZuRi0vaSFqKPCW1qksfDE=
</data>
<key>hash2</key>
<data>
aK2kvZcgmqywotLHVkXGbEh1LkOnXWQEX6RKwgp3f7s=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
<dict>
<key>hash</key>
<data>
71E/nyD1JC6i4rw6+kjjVgE/fZA=
</data>
<key>hash2</key>
<data>
d1R62G7VThDKTjMMGGoUR6TC9bR0hjwLNqAggKJwsS0=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
<dict>
<key>hash</key>
<data>
lC9mNWqzXYAYynusmnCrDuM3hvI=
</data>
<key>hash2</key>
<data>
ZBTMovff3XB5dFKWqxpFhQsHN7/F4Zfp45tuh4OSDB0=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/NSViewController-3Jh-0i-2oC.nib</key>
<dict>
<key>hash</key>
<data>
jBRfznhMbiKUnUxlCD1QLUegGsc=
</data>
<key>hash2</key>
<data>
niqIc11tpbnFJIeMHBNiCcjwUkpkJvJJoAKTguRNp/s=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
<dict>
<key>hash</key>
<data>
S9xl+rRRrH6aWKPTrX11XmKhYtA=
</data>
<key>hash2</key>
<data>
unrn3sgw+6nM2WDwyTjK8g/wIOAogLhFXRotyPK6xIw=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-QqD-oc-2tR.nib</key>
<dict>
<key>hash</key>
<data>
a5hup3BYBUycbe+iJd/nx+VQ/rA=
</data>
<key>hash2</key>
<data>
P/jSqX6j8bzFQoaQzsZl49a9zRuMnaO4/Gq+iECoDu4=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
<dict>
<key>hash</key>
<data>
7osH7f7CY2aFRWbCLAy1odTex/M=
</data>
<key>hash2</key>
<data>
aNkXpHLXtb/zTBJ/LsXFPlcRqVfZh4L5qRk4kUZx2NE=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,53 +0,0 @@
快捷键说明:
=== 全局 ===
[↑][↓][←][→] 移动勇士
[CTRL] 跳过对话
[Z] 转向
[X] 打开/关闭怪物手册
[G] 打开/关闭楼层传送器
[A] 读取自动存档
[S] 打开/关闭存档页面
[D] 打开/关闭读档页面
[K] 打开/关闭快捷商店选择列表
[T] 打开/关闭工具栏
[ESC] 打开/关闭系统菜单
[E] 显示光标
[H] 打开帮助页面
[R] 回放
[SPACE] 轻按(仅在轻按开关打开时有效)
[1] 快捷使用破墙镐
[2] 快捷使用炸弹/圣锤(先检测有没有炸弹,没有再检测圣锤)
[3] 快捷使用中心对称飞行器
=== 文本显示界面 ===
[SPACE]/[ENTER] 继续
=== 选项列表 ===
[↑][↓] 移动当前选择项
[ESC] 返回
[SPACE]/[ENTER] 确认该选项
=== 怪物手册页面 ===
[↑][↓][←][→] 翻页
[ESC]/[X] 关闭怪物手册
=== 楼传器页面 ===
[↑][↓][←][→] 更改楼层
[SPACE]/[ENTER] 确认传送
[ESC]/[G] 关闭楼传器
=== 道具栏页面 ===
[↑][↓][←][→] 更改当前道具
[SPACE]/[ENTER] 确认使用道具
[ESC]/[T] 关闭道具栏
=== 存读档页面 ===
[↑][↓][←][→] 更改当前存读档位置
[PAGEUP][PAGEDOWN] 存读档翻页
[SPACE]/[ENTER] 确认存读档
[ESC]/[S]/[D] 关闭存读档界面
=== 正在使用中心对称飞行器时 ===
[3]/[SPACE]/[ENTER] 确认飞行
其他键 取消飞行

View File

@ -1,19 +1,20 @@
HTML5魔塔样板V2.3
地图编辑器可以右键复制或移动图块 √
事件while循环处理 √
事件:等待用户操作并获得按键或点击信息 √
地图数据统计 √
衰弱可以减少攻防的比例 √
便捷PS工具可以批量导入素材 √
除Autotile外均可自动注册 √
支持status:x获得当前坐标 √
core.debug()改成调试模式可以Ctrl穿墙 √
新建地图可以保留楼层属性 √
地图编辑器可用PageUp和PageDown切换楼层 √
提供大量素材,可直接取用 √
重写大部分教程,新增大量拓展描述 √
大量细节进行优化所有已知的bug进行了修复 √
启动服务和便捷PS工具Mac版
地图编辑器可以右键复制或移动图块
事件while循环处理
事件:等待用户操作并获得按键或点击信息
地图数据统计
衰弱可以减少攻防的比例
便捷PS工具可以批量导入素材
除Autotile外均可自动注册
支持status:x获得当前坐标
core.debug()改成调试模式可以Ctrl穿墙
新建地图可以保留楼层属性
地图编辑器可用PageUp和PageDown切换楼层
提供大量素材,可直接取用
重写大部分教程,新增大量拓展描述
大量细节进行优化所有已知的bug进行了修复
-----------------------------------------------------------------------

View File

@ -0,0 +1,16 @@
将几个RM塔的素材进行归整后上传到了百度网盘和QQ群文件可供下载使用。
包含:
- 地面图Tilesets
- 道具和帧动画
- 行走图勇士、怪物和NPC等
- 动画可被RM动画导出器直接导出
- 自动元件Autotiles
- 音效
等六个部分
百度网盘下载地址:
https://pan.baidu.com/s/1vXICR79ZoP5LXujhlAjN-A
也可以在HTML5魔塔交流群539113091的群文件中找“常用素材”下载。