--[[
神兽保佑！菩萨包邮！佛祖包邮！真主阿拉包邮！代码无BUG！！！
创建作者：Administrator
创建时间：2015年1月23日21时18分8秒
感谢使用：更鸟游戏
]]
------------------------------------------
function 系统配置(t)
    t.title = "Q键控制 WSAD键移动 20150121"				-- 文本型	窗口标题
    t.window.width = 800			-- 数值型	宽度
    t.window.height = 600			-- 数值型	高度
    t.window.msaa = 0					-- 数值型	抗锯齿数
    t.window.vsync =			true		-- 逻辑型	垂直同步
    t.window.borderless = false		-- 逻辑型	无边框
    t.window.resizable =	false		-- 逻辑型	可调节大小
    t.window.highdpi =		false		-- 逻辑型	高清模式显示，土豪专用
    t.window.srgb =				true		-- 逻辑型	伽马修正
    t.window.fullscreen =	false		-- 逻辑型	全屏
    t.window.fullscreentype = "exclusive"	-- 文本型	全屏显示模式
		
    t.modules.joystick = 	false		-- 逻辑型	手柄
    t.modules.audio =			false		-- 逻辑型	音频
    t.modules.sound =			false		-- 逻辑型	声音流
    t.modules.physics =		false		-- 逻辑型	物理引擎
    t.modules.thread =		false		-- 逻辑型	线程系统
end
-----------头部可以intro，变量等----------



------------------------------------------
function 引擎创建()
	--置资源目录(取游戏路径())  --设置游戏目录，必有该语句！
	置资源目录(取调试目录().."Example/Win32/GameRes")
	--因为例程演示需要，设置演示资源目录，编译时务必手动更改游戏目录
	
	local f= 创建字体("Verdana.ttf", 14)
	--首先载入一个TTF文字文件，出于显示，这里用的字体是Verdana，游戏中，你可以使用中文字体
	置字体(f)
	
	state="Ready"  --状态变量
  x,y=400,300  --矩形初始坐标
  move='' --移动方向控制变量
  times=0 --总时间
  tracks={} --记录当前按键和时间即{{按键,时间}}
  doing={}  --记录当前按键
  lines={}  --记录线的坐标
  
  置行宽(3)

	--设置当前字体为刚刚载入的文字
end
------------------------------------------

function 逻辑更新(dt)

  times=times+dt
  if state=="Recording" then
    if table.getn(doing)~=0 then
        move=doing[1]
        table.insert(tracks,{doing[1],times})
        table.remove(doing,1)
    end
  end 
  
  if state=="Playback" then
    if table.getn(tracks)~=0 then
      --判断时间是否与记录的时间一致        
      if times>=tracks[1][2] then
        --把记录的运动方向赋给move
        move=tracks[1][1]
        --""表示按键抬起，即运动了一段，
        --下面的代码把这段的线条除去了
        if tracks[1][1]=="" then
            table.remove(lines,1)
            table.remove(lines,1)
        end
        table.remove(tracks,1)
      end
    end
  end
  
  --方块运动控制
  if move=='w' then
    y=y-3
  elseif move=='s' then
    y=y+3
  elseif move=='a' then
    x=x-3
  elseif move=='d' then
    x=x+3
  end
end
------------------------------------------

function 画面显示()
	置颜色(255,255,255)
  画文本(state.."\ntime:  "..times,50,50)
  --绘制方块
  画矩形("fill",x-15,y-15,30,30)
  --绘制轨迹线条
  if #lines>=4 then
      画线(unpack(lines))
  end

end
------------------------------------------

function 键盘按下(key)
	 if state=="Recording" then
        if(key=="w")or(key=="s")or(key=="a")or(key=="d")then 
          table.insert(doing,key)
        end
        if key=="q" then
          state='Playback'
          x,y=400,300
          times=0
        end
    end
    
    if(state=="Ready")and(key=="q")then
        state="Recording"
        times=0
        table.insert(lines,x)
        table.insert(lines,y)
    end
end
------------------------------------------

function 键盘放开(key)
	if key == "escape" then 事件停止() end
		--注意在录制状态时当按键抬起时，方块停止运动
    --这时也要记录一次方块的坐标
    if state=="Recording" then
        if(key=="w")or(key=="s")or(key=="a")or(key=="d")then 
          table.insert(doing,"")
          table.insert(lines,x)
          table.insert(lines,y)
        end
    end
end
------------------------------------------

function 鼠标按下(x,y,button)
	
end
------------------------------------------

function 鼠标放开(x,y,button)
	
end
------------------------------------------

function 鼠标移动(x,y,xrel,yrel)
	
end
------------------------------------------

function 鼠标滚轮移动(x,y,xrel,yrel)
	
end
------------------------------------------

function 窗口尺寸变化(w,h)
		
end
------------------------------------------

function 窗口获得焦点(f)
		
end
------------------------------------------

function 窗口鼠标进入(f)
		
end
------------------------------------------

function 窗口可视状态(v)
		
end
------------------------------------------

function 线程错误消息(thread,errorstr)
		
end
------------------------------------------

function 拖放得到目录(dir)

end
------------------------------------------

function 拖放得到文件(f)

end
------------------------------------------