Skip to content

Commit

Permalink
1.Demo添加了一个测试按钮,便于直接跳转到指定章节和剧情位置
Browse files Browse the repository at this point in the history
2.框架源码添加判断是否存在剧情文件对应的代码文件,如果不存在自定义js文件,不执行eval函数
3.预计下次将module源码文件夹合并到fullExample便于测试。
4.之后,框架源码将会与测试Demo绑定,单独复制出来用,可能需要改一下
执行到<end时的路径
  • Loading branch information
2439905184 committed Feb 8, 2021
1 parent 8e1c58a commit d116cff
Show file tree
Hide file tree
Showing 8 changed files with 126 additions and 7 deletions.
8 changes: 5 additions & 3 deletions bin/音乐餐厅/Scene/Game.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<!-- 禁用缓存 -->
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<META HTTP-EQUIV="Expires" CONTENT="0">
<!--框架运行强制依赖js插件-->
<!--<script src="jQuery_main.js"></script>-->
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
Expand Down Expand Up @@ -35,8 +35,10 @@ <h1> EasyAvgFramework </h1>
<button id="history">历史记录</button>
<button id="hideDialog">隐藏对话框</button>
<button id="clearAll">清空所有localStorage</button>
<button id="loadFromChapterBtn">从头加载指定的章节 方便测试用</button>
<sapn>开发游戏时,请删除这个防止玩家乱点</span>
<br>
<input id="loadFromInput" style="width:300px;" placeholder="请输入要加载的章节 格式1_1 章节_第几句话的索引">
<button id="loadFromChapterBtn">加载</button>
<span>从输入的位置加载指定的章节方便测试用</span> <sapn>开发游戏时,请删除这个防止玩家乱点</span>
<ol id="HistoryPanel" style="display:none"></ol>
<h6> Copyright © 2020 小沙盒工作室&128hh. </h6>
</body>
Expand Down
21 changes: 21 additions & 0 deletions bin/音乐餐厅/Scene/InitGame.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ $(function()
{
file.clearAll()
})

}
initUI()
//显示bgm
Expand Down Expand Up @@ -129,4 +130,24 @@ $("#saveGame").click(function()
changeScene("../Load_and_Save.html")
}
})
//读取指定的章节文件
$("#loadFromChapterBtn").click(function()
{
var input_str=$("#loadFromInput").val()
var chapterIndex=input_str.split("_")[0]
var lineIndex=input_str.split("_")[1]
var dataObj=PlotLoader.load_from(chapterIndex,lineIndex)
if(dataObj!=null)
{
console.log("存在数据")
dialog.setLoadContent(dataObj)
console.log("#游戏进度_>_"+t_data)
console.warn("#返回的加载后的数据");
console.log(dataObj);
}
else
{
console.log("#错误,无法获得返回的加载数据")
}
})
})
2 changes: 1 addition & 1 deletion bin/音乐餐厅/module/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ this.create_Dialog=function(color)
if(data_obj.has_func==false)
{
// console.clear()
console.warn("#此章节不存在用于脚本,不执行脚本,测试信息,请忽略")
console.warn("#此章节对应自定义js文件不存在,不执行脚本,测试信息,请忽略")
alert("不存在js文件,跳过运算js代码")
}
if(data_obj.has_func==true)
Expand Down
4 changes: 4 additions & 0 deletions fullExample/Scene/Game.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ <h1> EasyAvgFramework </h1>
<button id="history">历史记录</button>
<button id="hideDialog">隐藏对话框</button>
<button id="clearAll">清空所有localStorage</button>
<br>
<input id="loadFromInput" style="width:300px;" placeholder="请输入要加载的章节 格式1_1 章节_第几句话的索引">
<button id="loadFromChapterBtn">加载</button>
<span>从输入的位置加载指定的章节方便测试用</span> <sapn>开发游戏时,请删除这个防止玩家乱点</span>
<sapn>开发游戏时,请删除这个防止玩家乱点</span>
<ol id="HistoryPanel" style="display:none"></ol>
<h6> Copyright © 2020 小沙盒工作室&128hh. </h6>
Expand Down
20 changes: 20 additions & 0 deletions fullExample/Scene/InitGame.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,4 +124,24 @@ $("#saveGame").click(function()
changeScene("../Load_and_Save.html")
}
})
//读取指定的章节文件
$("#loadFromChapterBtn").click(function()
{
var input_str=$("#loadFromInput").val()
var chapterIndex=input_str.split("_")[0]
var lineIndex=input_str.split("_")[1]
var dataObj=PlotLoader.load_from(chapterIndex,lineIndex)
if(dataObj!=null)
{
console.log("存在数据")
dialog.setLoadContent(dataObj)
console.log("#游戏进度_>_"+t_data)
console.warn("#返回的加载后的数据");
console.log(dataObj);
}
else
{
console.log("#错误,无法获得返回的加载数据")
}
})
})
10 changes: 8 additions & 2 deletions module/PlotLoader.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
//整合一下 这个将会是新的剧情加载器
// NOTE: 这里细节需要修改一下 如果当前章节不需要对应的脚本,则不去获取脚本
function IPlotLoader()
{ // NOTE: 剧情加载器和脚本加载器应该由Dialog的clicks 驱动,只要返回数据到Dialog
//默认章节位置 默认句子位置 增加I防止混淆变量名称
Expand All @@ -9,8 +10,8 @@ function IPlotLoader()
// NOTE: 初始化的加载方法,用于开启新的游戏,从头开始读文件
this.load=function(str_url,func_url)
{
//把剧情分词和函数分词存储一个数组 此时为二维数组,一次性return
var final_obj={"plot_array":[],"func_array":[]}//剧情数组元素在前,函数数组元素在后
//把剧情分词和函数分词存储为Json对象
var final_obj={"plot_array":[],"func_array":[],"has_func":true}//剧情数组元素在前,函数数组元素在后
//改用ajax同步方法 //async:false为同步 获取文本
$.ajax({url:str_url,async:false,success:function(result)
{
Expand All @@ -20,6 +21,11 @@ function IPlotLoader()
$.ajax({url:func_url,async:false,success:function(result)
{
final_obj.func_array=result.split("\n")
final_obj.has_func=true
},error:function(xhr,status,error)
{
alert("此章节没有自定义js,不执行,执行has_func=false")
final_obj.has_func=false
}})
//最后返回数据数组
return final_obj
Expand Down
56 changes: 56 additions & 0 deletions module/PlotLoader.js.备份
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
//整合一下 这个将会是新的剧情加载器
function IPlotLoader()
{ // NOTE: 剧情加载器和脚本加载器应该由Dialog的clicks 驱动,只要返回数据到Dialog
//默认章节位置 默认句子位置 增加I防止混淆变量名称
this.IchapterIndex=0
this.IlineIndex=0
var chapterPath="../chapter/"
var scriptPath="../chapterScript/"
// NOTE: 初始化的加载方法,用于开启新的游戏,从头开始读文件
this.load=function(str_url,func_url)
{
//把剧情分词和函数分词存储一个数组 此时为二维数组,一次性return
var final_obj={"plot_array":[],"func_array":[]}//剧情数组元素在前,函数数组元素在后
//改用ajax同步方法 //async:false为同步 获取文本
$.ajax({url:str_url,async:false,success:function(result)
{
// alert(result)
final_obj.plot_array=result.split("\n")
}})
$.ajax({url:func_url,async:false,success:function(result)
{
final_obj.func_array=result.split("\n")
}})
//最后返回数据数组
return final_obj
}
// NOTE: 读取已经存在的存档 需要一个章节变量 一个index变量
this.load_from=function(chapterIndex,lineIndex)
{//暂存
// NOTE: 逻辑是,在游戏的Init.js中(在玩家js之前,初始化的js)
//1.如果获取到游戏数据,然后调用此方法,返回数据对象给Init.js,
//2.Init.js再根据此对象,调用Dialog的setLoadContent方法,设置文本,同时同步更新Dialog内部计数器索引
//3.Dialog每次点击,就自动是新的数据
this.IchapterIndex=chapterIndex
this.IlineIndex=lineIndex
// NOTE: 新增两个参数,用于给Dialog设置指定位置的文本
var final_obj={
"plot_array":[],
"func_array":[],
"chapterIndex":chapterIndex,
"lineIndex":lineIndex,
}
$.ajax({url:chapterPath+chapterIndex+".txt",async:false,success:function(result)
{
final_obj.plot_array=result.split("\n")
final_obj.chapterIndex=Number(chapterIndex)
final_obj.lineIndex=Number(lineIndex)
}})
$.ajax({url:scriptPath+"func"+chapterIndex+".js.txt",async:false,success:function(result)
{
final_obj.func_array=result.split("\n")
}})
return final_obj
}

}
12 changes: 11 additions & 1 deletion module/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,17 @@ this.create_Dialog=function(color)
console.log(dataObj.plot_array);
var tmp_li=$("<li class='historyView'>"+dataObj.plot_array[0]+"</li>")
$("#HistoryPanel").append(tmp_li)
eval(dataObj.func_array[0])
if(data_obj.has_func==false)
{
// console.clear()
console.warn("#此章节对应自定义js文件不存在,不执行脚本,测试信息,请忽略")
alert("不存在js文件,跳过运算js代码")
}
if(data_obj.has_func==true)
{
console.warn("#存在js脚本,运算它");
eval(dataObj.func_array[0])
}
}
//加载已经存在的游戏进度时使用的方法
dialog.setLoadContent=function(data_obj)
Expand Down

0 comments on commit d116cff

Please sign in to comment.