--=============================================================================--
-- ★ 我的游戏类
--=============================================================================--

我的游戏类 = class()



--=============================================================================--
-- ■ 构造函数()
--=============================================================================--

function 我的游戏类:初始化(角色名,等级,性别,发型,衣服,眼睛,肤色)

	地图宽度  = 1600
	地图高度  = 1600
	
	背景图片 = 引擎:载入图片("/Dat/bg.png")  
	背景精灵 = D2D_精灵.创建(背景图片,0,0,地图宽度,地图高度)
	

	
      self.衣服_图片 = 引擎:载入图片("Dat/avatar/衣服/" .. 衣服 )
      self.发型_图片 = 引擎:载入图片("Dat/avatar/发型/" .. 发型 )
      self.肤色_图片 = 引擎:载入图片("Dat/avatar/皮肤/" .. 肤色)
      self.眼睛_图片 = 引擎:载入图片("Dat/avatar/眼睛/" .. 眼睛)


	
	 self.角色动画 = D2D_动画.创建( self.肤色_图片,16,8,0,0,32,48)
	 self.角色动画:置中心点(16,40)
	 self.角色动画:播放()
	
	
	self.主角信息 = {
		名称 = 角色名,
		当前坐标 = {x=200,y=200},
		目标坐标 = {x=200,y=200},
		方向= "下",
		状态= "静止",
		移动速度 = 2
		
	}
	
	
	
	画面偏移 = {x=0,y=0}
	
     游戏进度  = "进入游戏"
end 




--=============================================================================--
-- ■ 更新()
--=============================================================================--

function 我的游戏类:更新()

	画面偏移.x,画面偏移.y = 引擎:取画面坐标(self.主角信息.当前坐标.x,self.主角信息.当前坐标.y,地图宽度,地图高度,640,480)
	
	dt = 引擎:取最后帧时间()
	self.角色动画:更新(dt)


       if(self.主角信息.状态== "移动") then

                   if (self.主角信息.方向 == "下") then
                   
                       if(self.角色动画:取当前帧() > 3 ) then
                            self.角色动画:置当前帧(0)
                       end


			elseif (self.主角信息.方向 == "左") then

                       if(self.角色动画:取当前帧() < 3 or self.角色动画:取当前帧() > 7 ) then
                            self.角色动画:置当前帧(4)
                       end


			elseif (self.主角信息.方向 == "右") then
                       if(self.角色动画:取当前帧() < 7 or self.角色动画:取当前帧() > 11 ) then
                            self.角色动画:置当前帧(8)
                       end


			elseif (self.主角信息.方向 == "上") then

                       if(self.角色动画:取当前帧() < 11 or self.角色动画:取当前帧() > 15 ) then
                            self.角色动画:置当前帧(12)
                       end

			end


       end
        
              if(self.主角信息.状态== "静止") then

                   if (self.主角信息.方向 == "下") then

                            self.角色动画:置当前帧(0)

			elseif (self.主角信息.方向 == "左") then

                            self.角色动画:置当前帧(4)

			elseif (self.主角信息.方向 == "右") then

                            self.角色动画:置当前帧(8)

			elseif (self.主角信息.方向 == "上") then

                            self.角色动画:置当前帧(12)

			end
               
               end







       if(引擎:取按键按下(键_鼠标左)) then

                self.主角信息.目标坐标.x =  鼠标坐标.x  - 画面偏移.x
                self.主角信息.目标坐标.y =  鼠标坐标.y  - 画面偏移.y
                
       end
       



       if (self.主角信息.目标坐标.x > self.主角信息.当前坐标.x and math.abs(self.主角信息.目标坐标.x - self.主角信息.当前坐标.x) > self.主角信息.移动速度) then
            self.主角信息.状态= "移动" 
            self.主角信息.方向 = "右"

            self.主角信息.当前坐标.x = self.主角信息.当前坐标.x + self.主角信息.移动速度

       elseif (self.主角信息.目标坐标.y < self.主角信息.当前坐标.y and math.abs(self.主角信息.目标坐标.y - self.主角信息.当前坐标.y) > self.主角信息.移动速度) then
            self.主角信息.状态= "移动"
            self.主角信息.方向 = "上"

            self.主角信息.当前坐标.y = self.主角信息.当前坐标.y - self.主角信息.移动速度

       elseif (self.主角信息.目标坐标.x < self.主角信息.当前坐标.x and math.abs(self.主角信息.目标坐标.x - self.主角信息.当前坐标.x) > self.主角信息.移动速度) then
            self.主角信息.状态= "移动"
            self.主角信息.方向 = "左"

            self.主角信息.当前坐标.x = self.主角信息.当前坐标.x - self.主角信息.移动速度
            
       elseif (self.主角信息.目标坐标.y > self.主角信息.当前坐标.y and math.abs(self.主角信息.目标坐标.y - self.主角信息.当前坐标.y) > self.主角信息.移动速度) then
            self.主角信息.状态= "移动"
            self.主角信息.方向 = "下"

            self.主角信息.当前坐标.y = self.主角信息.当前坐标.y + self.主角信息.移动速度
	else
		self.主角信息.状态= "静止"
       end

	
	

end 


--=============================================================================--
-- ■ 显示()
--=============================================================================--

function 我的游戏类:显示()

	背景精灵:显示(画面偏移.x,画面偏移.y)
	
	self.角色动画:置图片(self.肤色_图片)
	self.角色动画:显示(self.主角信息.当前坐标.x + 画面偏移.x ,self.主角信息.当前坐标.y + 画面偏移.y)
	
	self.角色动画:置图片(self.眼睛_图片)
	self.角色动画:显示(self.主角信息.当前坐标.x + 画面偏移.x ,self.主角信息.当前坐标.y + 画面偏移.y)
	

	self.角色动画:置图片(self.衣服_图片)
	self.角色动画:显示(self.主角信息.当前坐标.x + 画面偏移.x ,self.主角信息.当前坐标.y + 画面偏移.y)


	self.角色动画:置图片(self.发型_图片)
	self.角色动画:显示(self.主角信息.当前坐标.x + 画面偏移.x ,self.主角信息.当前坐标.y + 画面偏移.y)

	文字:置颜色(颜色_白)
	
	文字:显示(self.主角信息.当前坐标.x + 画面偏移.x  - 文字:取宽度(self.主角信息.名称)/2 ,self.主角信息.当前坐标.y + 画面偏移.y - 55,self.主角信息.名称)
	


end 
