快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

葡萄京娱乐场手机APP:C开发WPFSilverlight动画及游戏系列教程(Game Course):(四)



C葡萄京娱乐场手机APP#开拓WPF/Silver葡萄京娱乐场手机APPlight动画及游戏系列教程(Game Course):(四)实现2D人物动画①

经由过程前面的进修,我们掌握了若何动态创建物体移动动画,那么接下来我将先容WPF中若何将物体换成2D游戏角色,并经由过程应用前面所讲的DispatcherTimer计时器来实现2D人物角色的各类动作动画。

动态实现2D人物角色动画今朝有两种主流措施,下面我会分手进行先容。

第一种措施我称之为图片切换法,筹备事情:首先经由过程3DMAX等对象3D衬着2D的措施制作出角色,然后将角色每个动作均导出8个偏向每偏向多少帧的系列图片(假如是有偏向的邪术图片,很多2D-MMORPG每每会导出16个偏向的系列帧图片以求更为逼真),即将每小我物每个动作的各偏向的每帧均存成一张图片,如下图仅以从破天一剑游戏中提取的素材为例:

(分外申明:本系列教程所应用的如有注明归属权的图片素材均滥觞于收集,请勿用于商业用途,否则造成的统统后果均与本人无关。)

从上图可以看到,我将人物向右方跑步共8帧图片经由过程Photoshop分手将画布等比例扩大年夜成150*150象素图片(由于是提取的素材,初始宽和高是不均衡值,以是必须扩大年夜成自己的需求,这样人物会在图片中居中,并且为后期加入武器或坐骑留好余地。轻细的偏离也可以在后期进行微葡萄京娱乐场手机APP调),并将他们从开始到停止分手命名为0.png,1.png,2.png,3.png,4.png,5.png,6.png,7.png(这里还要顺带一提的是,图片最好背景Alpha透明,否则在算法上还要进行去色,不是画蛇添足吗?至于为何是png而不是gif,葡萄京娱乐场手机APP我这里斟酌到Silverlight今朝只支持png和jpg,为了更多的通用性,当然假如您只用WPF,gif或png均可)。着末在项目中我们新建一个文件夹取名叫Player,然后将这8张图片保存在该目录下,到此筹备事情终于停止了,忽忽。。还真够累的。

接下来便是重头戏了,若何经由过程纯C#来实现动态创建人物跑动动作动画呢?嘿嘿,且看下面代码。

int count = 1;

Image Spirit;

public Window4() 葡萄京娱乐场手机APP{

InitializeComponent();

Spirit = new Image();

Spirit.Width = 150;

Spirit.Height = 150;

Carrier.Children.Add(Spirit);

DispatcherTimer dispatcherTimer = new DispatcherTimer();

dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);

dispatcherTimer.Interval = TimeSpan.FromMilliseconds(150);

dispatcherTimer.Start();

}

private void dispatcherTimer_Tick(object sender, EventArgs e) {

Spirit.Source = new BitmapImage(new Uri(@"Player\" + count + ".png", UriKind.Relative));

count = count == 7 ? 0 : count + 1;

}

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: