Here is my variant, a bit more geometrical.
Denote by $P$ the original polygon, and $P_\lambda$ the contracted polygon with a factor $\lambda \in (0,1)$ which lies inside $P$. Note that $P_\lambda$ is obtained from $P$ after a dilation and a translation, and therefore there exists a point $O_\lambda$ such that $P_\lambda$ is the image of $P$ under a homothety $h_\lambda$ of center $O_\lambda$ and factor $\lambda$.
Now we know that $h_\lambda : P \to P_\lambda \subset P$ is well defined, continuous and a contraction. Therefore, since $P$ is closed, $h_\lambda$ has a fixed point in $P$, which can only be $O_\lambda$. As a consequence $O_\lambda \in P\cap P_\lambda$.
Pick a sequence $\lambda_n \to 1$ and denote $O_n = O_{\lambda_n}$. Since $(O_n)$ is contained in a compact set $P$, it follows that it has at least one limit point $O$. For keeping the notations simple, we assume the whole $(O_n)$ is convergent to $O$.
Take now $X \in P$ and assume that $[OX]$ is not contained in $P$. Then there exists $Y \in [OX] \setminus P$. Since $P$ is closed, there exists a maximal open subsegment $(X_1X_2)$ of $[OX]$ which contains $Y$ and is out of $P$ ($X_1 \in (OY)$). Obviously $X_1,X_2 \in P$. Moreover, there exists an open cone $C$ of direction given by $(X_1X_2)$, with angle and length $\varepsilon$ small enough, which contains $(X_1X_2)\cap B(X_2,\varepsilon)$ and does not intersect $P$. This happens since $P$ is a polygon and the exterior of $P$ near $X_2$ is either an angle or a half-plane. Consider now $Z_n = h_{\lambda_n}(X_2)$. By hypothesis we have $(Z_n) \subset P$.
Since $O_n \to O$, for $n$ large enough the angle $\angle O_nXO$$\angle O_nX_2O$ will be smaller than $\varepsilon/2$. Since $O_nZ_n = \lambda_n O_nX_n$$O_nZ_n = \lambda_n O_nX_2$ and $\lambda_n \to 1$ the points $Z_n$ will lie in the cone $C$ for $n$ large enough. This contradicts the fact that $Z_n$ is in $P$.
Therefore $P$ is star-shaped with respect to $O$.