public override void Paint(QPainter painter, QStyleOptionGraphicsItem option, QWidget widget) { // Body painter.SetBrush(color); painter.DrawEllipse(-10, -20, 20, 40); // Eyes painter.SetBrush(Qt.GlobalColor.white); painter.DrawEllipse(-10, -17, 8, 8); painter.DrawEllipse(2, -17, 8, 8); // Nose painter.SetBrush(Qt.GlobalColor.black); painter.DrawEllipse(new QRectF(-2, -22, 4, 4)); // Pupils painter.DrawEllipse(new QRectF(-8.0 + mouseEyeDirection, -17, 4, 4)); painter.DrawEllipse(new QRectF(4.0 + mouseEyeDirection, -17, 4, 4)); // Ears painter.SetBrush(Scene().CollidingItems(this).Count == 0 ? Qt.GlobalColor.darkYellow : Qt.GlobalColor.red); painter.DrawEllipse(-17, -12, 16, 16); painter.DrawEllipse(1, -12, 16, 16); // Tail QPainterPath path = new QPainterPath(new QPointF(0, 20)); path.CubicTo(-5, 22, -5, 22, 0, 25); path.CubicTo(5, 27, 5, 32, 0, 30); path.CubicTo(-5, 32, -5, 42, 0, 35); painter.SetBrush(Qt.BrushStyle.NoBrush); painter.DrawPath(path); }
public override void Paint(QPainter painter, QStyleOptionGraphicsItem option, QWidget widget) { painter.SetBrush(Qt.GlobalColor.gray); painter.DrawRect(-20, -58, 40, 2); // front axel painter.DrawRect(-20, 7, 40, 2); // rear axel painter.SetBrush(color); painter.DrawRect(-25, -79, 50, 10); // front wing painter.DrawEllipse(-25, -48, 50, 20); // side pods painter.DrawRect(-25, -38, 50, 35); // side pods painter.DrawRect(-5, 9, 10, 10); // back pod painter.DrawEllipse(-10, -81, 20, 100); // main body painter.DrawRect(-17, 19, 34, 15); // rear wing painter.SetBrush(Qt.GlobalColor.black); painter.DrawPie(-5, -51, 10, 15, 0, 180 * 16); painter.DrawRect(-5, -44, 10, 10); // cocpit painter.Save(); painter.Translate(-20, -58); painter.Rotate(wheelsAngle); painter.DrawRect(-10, -7, 10, 15); // front left painter.Restore(); painter.Save(); painter.Translate(20, -58); painter.Rotate(wheelsAngle); painter.DrawRect(0, -7, 10, 15); // front left painter.Restore(); painter.DrawRect(-30, 0, 12, 17); // rear left painter.DrawRect(19, 0, 12, 17); // rear right }