×

拼怪GDI+旋转

Kalet Kalet 发表于2009-03-20 12:00:14 浏览314 评论0

抢沙发发表评论


拼的怪,好像皮影戏的那种。
想了下,有的2D游戏拼怪的效果大概真不是2D能实现的。拼了一个简单的,没有想象中的难,凑合过关。

拼怪GDI+旋转

除了3D引擎,2D的大概只有GDI+能够方便的旋转和缩放了。试了下,GDI+的旋转,真不是一般的好使啊!!


嘿嘿嘿,《月下夜想曲》最喜欢的BOSS,galamoth!



定义一个x,y偏移;各个部分都由这个偏移+或-获得;移动的话就移动偏移整体就随之移动了。


GDI+图片旋转:


GDI+有几种旋转方式。Gdiplus::Image有一个旋转,不过只能旋转一个角度。Gdiplus::graphicspath有一个旋转,不过那是绘制圆圈方块的旋转,和偶们没关系。我们要用的是Gdiplus::graphics的旋转,就好像3D场景的旋转和偏移一样。


拼怪GDI+旋转

PointF point;
Graphics graphics(memdc);


point=PointF(1,1);       //围绕旋转的点


graphics.TranslateTransform(point.X,point.Y);      
graphics.RotateTransform(35);                      //转任意角度,比如35
graphics.TranslateTransform(-point.X,-point.Y);


graphicsArmL.DrawImage(....);


就OK了~~GDI+的旋转最最最神奇的一点是:场景会一起旋转,也就是说,当你大胳膊转了45度,小胳膊也跟着转45度;当你要再单独转小胳膊的时候,你就当没转过大胳膊,继续绕着0度时大胳膊和小胳膊的关节的位置转就好了,不需要再计算此时关节的位置。拽!拼怪GDI+旋转



群贤毕至

访客