拼的怪,好像皮影戏的那种。
想了下,有的2D游戏拼怪的效果大概真不是2D能实现的。拼了一个简单的,没有想象中的难,凑合过关。
除了3D引擎,2D的大概只有GDI+能够方便的旋转和缩放了。试了下,GDI+的旋转,真不是一般的好使啊!!
嘿嘿嘿,《月下夜想曲》最喜欢的BOSS,galamoth!
定义一个x,y偏移;各个部分都由这个偏移+或-获得;移动的话就移动偏移整体就随之移动了。
GDI+图片旋转:
GDI+有几种旋转方式。Gdiplus::Image有一个旋转,不过只能旋转一个角度。Gdiplus::graphicspath有一个旋转,不过那是绘制圆圈方块的旋转,和偶们没关系。我们要用的是Gdiplus::graphics的旋转,就好像3D场景的旋转和偏移一样。
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+旋转