Skip to content

Commit

Permalink
1.剧情加载器改用ajax方法,同步获取剧情文本和剧情脚本,注意不要在单个剧情文本写太多文字,否则可能阻塞线程。具体要多少文字会卡,还没测试过
Browse files Browse the repository at this point in the history
2.Logic只将人物变量设置为全局变量,以便在func1.js.txt中调用
3.剧情播放和js脚本执行初步测试成功
4.js脚本一次写一行,一句话对于一个脚本
如果对于的一行不需要执行脚本,请留空并回车
5.剧情加载器现移动至PlotLoader,之后给遗留测试代码删除,移动位置ChapterLoader
6.添加src文件夹,用于单独存放框架的所有源码
7.新增nginx启动代码,用于启动本地http服务器环境,需要安装nginx
8.之前的加载代码,移动至暂存2
  • Loading branch information
2439905184 committed Feb 4, 2021
1 parent 32886ef commit 7544b1a
Show file tree
Hide file tree
Showing 13 changed files with 140 additions and 144 deletions.
4 changes: 1 addition & 3 deletions fullExample/Scene/Game.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,14 @@
<script src="../../module/FileSystem.js"></script>
<script src="../../module/changeScene.js"></script>
<script src="../../module/ImageEffect.js"></script>
<script src="../../module/Animate.js"></script>
<script src="../../module/ChapterReader.js"></script>
<script src="../../module/PlotLoader.js"></script>
<script src="Logic.js"></script>
<!--内置button样式,如果不喜欢,可以自己建立css样式-->
<link rel="stylesheet" href="../css/button.css">
<link rel="stylesheet" href="../css/bgm.css">
<link rel="stylesheet" href="../css/historyView.css">
</head>
<body>

<audio id="bgm" src="../bgm/i71004_fresh.ogg" controls="true" autoplay="false" loop="true"></audio>
<h1> EasyAvgFramework </h1>
<button id="start">开始</button>
Expand Down
39 changes: 25 additions & 14 deletions fullExample/Scene/Logic.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@
$(function()
{
var Engine=new EasyAvg()
var ChapterLoader=new ChapterReader()
// var ChapterLoader=new ChapterReader()
var PlotLoader=new IPlotLoader()
var file=new FileSystem()
//动画
var Anim=new AnimateEffect()
var historyText=[]
/*初始化图像特效模块*/
var Effect=new ImageEffect()
window.ImageEffect=new ImageEffect()
// alert("请先点击开始按钮来播放背景音乐,由于浏览器安全设置,不能自动播放,点击人物,也能开始播放音乐")
function initUI()
{
Expand Down Expand Up @@ -57,25 +56,38 @@ $(function()
/*逻辑代码*/
// Engine.showBgm()
Engine.setBgmVolume(0.5)
var bg=Engine.create_img("../img/bg.jpg","背景")
window.bg=Engine.create_img("../img/bg.jpg","背景")
var dialog=Engine.create_Dialog()
var koyomi=Engine.create_img("../img/char.png","小夜美")
koyomi.css("margin-left","500px")
koyomi.css("margin-top","20px")
//改用全局变量 测试
window.koyomi=Engine.create_img("../img/char.png","小夜美")
koyomi.css("margin-left","500px")
koyomi.css("margin-top","20px")
koyomi.css("position","relative")
koyomi.click(function()
{
alert("点我干涉么,溜了..")
koyomi.animate({right:'250px',opacity:'0.5'})
})
// NOTE: 从文本文件读取剧情 此步骤由剧情加载器完成,不应该人为干涉
var dataArray=ChapterLoader.testLoad(ChapterLoader.txt1,ChapterLoader.func1)
// console.log("#数据数组");
// console.log(dataArray);
// var dataArray=ChapterLoader.testLoad(ChapterLoader.txt1,ChapterLoader.func1)

//初始化剧情
dialog.setContent(dataArray)
function initPlot()
{
// var tmp_cookie=$.cookie("tmp_plot_array")
// var data_obj=JSON.parse(tmp_cookie)
var data_obj=PlotLoader.load("../chapter/1.txt","../chapterScript/func1.js.txt")
console.warn("#加载器返回值");
console.log("type:"+typeof(data_obj));
console.log(data_obj);
// dialog.text(data_obj[0])
dialog.setContent(data_obj)
// dialog.text(data_obj.plot[0])
}
initPlot()
// dialog.setContent(dataArray)
dialog.setDebugLog(true)
Engine.create_BackroundImg(bg)
/*-------自定义函数----*/ //全部废弃

//添加ui
$("body").append(bg)
Expand All @@ -91,7 +103,6 @@ $("#saveGame").click(function()
console.warn("#运行状态"+index);
$.cookie('runTimeIndex',index,{path:'/',secure:true})
// var todoObj=JSON.stringify({"todoActionIndex":todoActionIndexArray,"functions":functionsList})
// localStorage.setItem("todoData",todoObj)
// changeScene("../save.html")
})

Expand Down
11 changes: 8 additions & 3 deletions fullExample/chapter/1.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
##第一章开始##
1
2
3
切换图片成千夜
换回来 :D
##下面是图片效果测试##
切换背景效果为反色
多留几句话
多留几句话
多留几句话
多留几句话
>
6 changes: 3 additions & 3 deletions fullExample/chapter/2.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##第二章开始##
1
2
3
2_1
2_2
2_3
<end
9 changes: 5 additions & 4 deletions fullExample/chapterScript/func1.js.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
alert('第一章开始')
alert(1)
alert(2)
alert(3)
alert('第一章开始,下面是切换图片测试')
koyomi.attr("src","../img/c03.png")
koyomi.attr("src","../img/k18.png")

ImageEffect.setImageEffect(bg,"invert","100%");
6 changes: 3 additions & 3 deletions fullExample/chapterScript/func2.js.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
alert('第二章开始')
alert(2)
alert(3)
alert(4)
console.log("2_1")
console.log("2_2")
console.log("2_3")
39 changes: 15 additions & 24 deletions module/PlotLoader.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,24 @@
//整合一下
function TxtLoader()
//整合一下 这个将会是新的剧情加载器
function IPlotLoader()
{ // NOTE: 剧情加载器和脚本加载器应该由Dialog的clicks 驱动,只要返回数据到Dialog
//根据click来设置和运行下一段文字和脚本
var 剧情分词
var 函数分词
var t
// var obj={"plot_array":plot_array,"func_array":func_array}
this.load=function(str_url,func_url)
{
//把剧情分词和函数分词存储一个数组 此时为二维数组,一次性return
var current_result=[]//剧情数组元素在前,函数数组元素在后
$.get(str_url,function(data,status)
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)
{
if(data)
{
剧情分词=data.split("\n")
current_result.push(剧情分词)
}
})
//脚本
$.get(func_url,function(data,status)
{
if(data)
{
函数分词=data.split("\n")
current_result.push(函数分词)
}
})
final_obj.func_array=result.split("\n")
}})
//最后返回数据数组
console.log("type_"+typeof(current_result));
localStorage.setItem("剧情")
return Array(current_result)
return final_obj
}
}
93 changes: 35 additions & 58 deletions module/core.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
// NOTE: 核心类
// TODO: 分辨率缩放?
// NOTE: 大面积重写代码!!
// NOTE: 运行时变量
function EasyAvg()
{

{// TODO: 以后单独设置剧情和脚本路径 便于用户自定义 ,默认路径不动 名称也不动
var chapterPath=""
var chapterScriptPath=""
/*框架全局变量,cookie http模式*/
/*参数"http"和https*/
var chapterIndex=1
var cookieMode=""
/*设置cookie是http模式还是https模式*/
this.setCookieMode=function(httpMode)
Expand All @@ -31,6 +33,7 @@ function EasyAvg()
{
//$("#btn_sound").attr("src",inSrc)
}
//Powered by 信息
$("body").append("<h6>Powered By <a target='_blank' href='https://github.com/little-game-and-simple-software/EasyAvgFrameWork'>EasyAvgFramework</a></h6>")
// NOTE: 创建背景图片
this.create_BackroundImg=function(img)
Expand All @@ -56,56 +59,26 @@ function EasyAvg()
//创建avg背景对话框
this.create_Dialog=function(color)
{
var ChapterLoader=new ChapterReader()
var PlotLoader=new IPlotLoader()
// var ChapterLoader=new ChapterReader()
var historyText=[]/*历史文本 用于显示历史记录*/
var clicks=0 /*内部计数*/
var dataArray=[] /*二维数据数组*/
/*对象*/
var dataObj={}
var debugMode=true /*调试模式*/
var todoActionIndexArray=[] /*内部计数*/
var functionsList=[] //要执行的函数列表
var dialog=$("<p></p>") /*对话框*/
var finalAction /*剧情播放到结尾执行的函数*/
var dialog=$("<p></p>") /*对话框*/
var finalAction /*剧情播放到结尾执行的函数*/
/*为对话框设置内容*/
dialog.setContent=function(array)
dialog.setContent=function(data_obj)
{
dataArray=array
// NOTE: 判断是否存在cookie 跳转保存页面后,自动恢复进度
// var runTimeIndex=$.cookie("runTimeIndex")
// if(runTimeIndex)
// {
// console.warn("#存在cookie,使用临时值")
// alert("#自动恢复进度!")
// console.warn("当前cookie值")
// console.log(runTimeIndex);
// //变量类型转换
// clicks=Number(runTimeIndex)
// // 设置第一段文字
// dialog.text(content[runTimeIndex])
// console.warn("#自动恢复后的click值")
// console.log(clicks);
// //从localStorage恢复
//
// var dataObj=JSON.parse(localStorage.getItem("todoData"))
// if(dataObj)
// {
// todoActionIndexArray=dataObj.todoActionIndex
// functionsList=dataObj.functions
// console.log("恢复数据");
// console.log(dataObj);
// // console.log("恢复函数列表");
// // console.log(functionsList);
// }
// }
// else{
// console.warn("#不存在cookie进度,使用Logic.js定义的值");
// dialog.text(content[0])
// }
dialog.text(dataArray[0][0])
console.log("对话框数据")
console.log(dataArray[0]);
var tmp_li=$("<li class='historyView'>"+dataArray[0][0]+"</li>")
dataObj=data_obj
dialog.text(data_obj.plot_array[0])
console.log("对话数据")
console.log(dataObj.plot_array);
var tmp_li=$("<li class='historyView'>"+dataObj.plot_array[0]+"</li>")
$("#HistoryPanel").append(tmp_li)
eval(dataArray[1][0])
eval(dataObj.func_array[0])
}
dialog.css("background","orange")
//对话框在最上面
Expand All @@ -122,13 +95,22 @@ this.create_Dialog=function(color)
dialog.click(function()
{
clicks+=1
var line=dataArray[0][clicks]
var line=dataObj.plot_array[clicks]
var lineCode=dataObj.func_array[clicks]
dialog.text(line)
if(line==">") //下一章
{
clicks=0 // NOTE: 进入下一章索引归零
dataArray=ChapterLoader.testLoad(ChapterLoader.txt2,ChapterLoader.func2)
dialog.text(dataArray[0][0])
{// NOTE: 进入下一章索引归零 并且章节索引+1
clicks=0
chapterIndex+=1 //组合成通用方法
dataObj=PlotLoader.load("../chapter/"+chapterIndex+".txt","../chapterScript/func"+chapterIndex+".js.txt")
console.warn("#下一章文本");
console.log(dataObj.plot_array[0]);
dialog.text(dataObj.plot_array[0])
eval(dataObj.func_array[0])
if(debugMode)
{
console.log("当前章节_"+chapterIndex);
}
}
if(line.indexOf("<")==0) //结尾
{
Expand All @@ -146,7 +128,8 @@ this.create_Dialog=function(color)
}
}
console.log("#当前句子_"+line);
eval(dataArray[1][clicks])
console.log("#当前代码_"+lineCode);
eval(lineCode)
//给历史记录添加文本
var tmp_li=$("<li class='historyView'>"+line+"</li>")
$("#HistoryPanel").append(tmp_li)
Expand All @@ -169,12 +152,6 @@ this.create_Dialog=function(color)
if(bool){console.warn("Dialog调试模式已打开")}
else{console.warn("Dialog调试模式已关闭"); }
}
// NOTE: 下面是两个内置事件 废弃,如果遇到代码问题,从backup代码恢复
// NOTE: 清除事件队列
dialog.clearActions=function()
{
to_do_Actions=[]
}
//获得运行时,index,跳转存档页面会丢失数据,用于暂存
dialog.getRuntimeIndex=function()
{
Expand Down
1 change: 1 addition & 0 deletions src/a
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
单独存放框架代码
Loading

0 comments on commit 7544b1a

Please sign in to comment.