{"id":86,"date":"2025-03-28T06:00:17","date_gmt":"2025-03-27T22:00:17","guid":{"rendered":"https:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/"},"modified":"2025-03-28T06:00:17","modified_gmt":"2025-03-27T22:00:17","slug":"%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a","status":"publish","type":"post","link":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/","title":{"rendered":"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a"},"content":{"rendered":"<div class=\"article_content clearfix\" id=\"article_content\">\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/kdoc_html_views-1a98987dfd.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/ck_htmledit_views-704d5b9767.css\" rel=\"stylesheet\"\/>\n<div class=\"markdown_views prism-atom-one-dark\" id=\"content_views\">\n  <svg style=\"display: none;\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n   <path d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" stroke-linecap=\"round\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\">\n   <\/path>\n  <\/svg><\/p>\n<h2 id=\"\u76ee\u5f55\">\n   \u76ee\u5f55<br \/>\n  <\/h2>\n<\/p>\n<div class=\"toc\">\n<div class=\"toc\">\n<ul>\n<li>\n      <a href=\"#\u76ee\u5f55\" rel=\"nofollow\"><br \/>\n       \u76ee\u5f55<br \/>\n      <\/a>\n     <\/li>\n<li>\n      <a href=\"#\u7a0b\u5e8f\u7b80\u4ecb\" rel=\"nofollow\"><br \/>\n       \u7a0b\u5e8f\u7b80\u4ecb<br \/>\n      <\/a><\/p>\n<ul>\n<li>\n        <a href=\"#\u7a0b\u5e8f\u4eae\u70b9\" rel=\"nofollow\"><br \/>\n         \u7a0b\u5e8f\u4eae\u70b9<br \/>\n        <\/a>\n       <\/li>\n<\/ul>\n<\/li>\n<li>\n      <a href=\"#\u7a0b\u5e8f\u7ed3\u6784\" rel=\"nofollow\"><br \/>\n       \u7a0b\u5e8f\u7ed3\u6784<br \/>\n      <\/a><\/p>\n<ul>\n<li>\n        <a href=\"#\u903b\u8f91\u5c42fsobjecth\" rel=\"nofollow\"><br \/>\n         \u903b\u8f91\u5c42fsObjecth<br \/>\n        <\/a><\/p>\n<ul>\n<li>\n          <a href=\"#\u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b\" rel=\"nofollow\"><br \/>\n           \u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b<br \/>\n          <\/a><\/p>\n<ul>\n<li>\n            <a href=\"#fspoint-class\" rel=\"nofollow\"><br \/>\n             fsPoint Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#\u4e00\u4e9b\u679a\u4e3e\u7c7b\u578b\" rel=\"nofollow\"><br \/>\n             \u4e00\u4e9b\u679a\u4e3e\u7c7b\u578b<br \/>\n            <\/a>\n           <\/li>\n<\/ul>\n<\/li>\n<li>\n          <a href=\"#\u5f02\u5e38\u7c7b\u578b\" rel=\"nofollow\"><br \/>\n           \u5f02\u5e38\u7c7b\u578b<br \/>\n          <\/a><\/p>\n<ul>\n<li>\n            <a href=\"#fsinvalidinitializepointvalexception-class\" rel=\"nofollow\"><br \/>\n             fsInvalidInitializePointValException Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsinvalidfiretimeexception-class\" rel=\"nofollow\"><br \/>\n             fsInvalidFireTimeException Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsinvalidbulletspeedinexception-class\" rel=\"nofollow\"><br \/>\n             fsInvalidBulletSpeedInException Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsoutrangemovetopointexception-class\" rel=\"nofollow\"><br \/>\n             fsOutRangeMoveToPointException Class<br \/>\n            <\/a>\n           <\/li>\n<\/ul>\n<\/li>\n<li>\n          <a href=\"#\u6e38\u620f\u4e2d\u4f7f\u7528\u7684\u7269\u4f53\" rel=\"nofollow\"><br \/>\n           \u6e38\u620f\u4e2d\u4f7f\u7528\u7684\u7269\u4f53<br \/>\n          <\/a><\/p>\n<ul>\n<li>\n            <a href=\"#fsobject-class\" rel=\"nofollow\"><br \/>\n             fsObject Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsbullet-class\" rel=\"nofollow\"><br \/>\n             fsBullet Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsaircraft-class\" rel=\"nofollow\"><br \/>\n             fsAircraft Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsmyaircraft-class\" rel=\"nofollow\"><br \/>\n             fsMyAircraft Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsenemyaircraft-class\" rel=\"nofollow\"><br \/>\n             fsEnemyAircraft Class<br \/>\n            <\/a>\n           <\/li>\n<li>\n            <a href=\"#fsscoreboard-class\" rel=\"nofollow\"><br \/>\n             fsScoreBoard Class<br \/>\n            <\/a>\n           <\/li>\n<\/ul>\n<\/li>\n<li>\n          <a href=\"#\u903b\u8f91\u5c42\u4e2d\u63d0\u4f9b\u7684\u4e00\u4e9b\u51fd\u6570\" rel=\"nofollow\"><br \/>\n           \u903b\u8f91\u5c42\u4e2d\u63d0\u4f9b\u7684\u4e00\u4e9b\u51fd\u6570<br \/>\n          <\/a>\n         <\/li>\n<li>\n          <a href=\"#\u903b\u8f91\u5c42\u4e2d\u5b9a\u4e49\u7684\u4e00\u4e9b\u5e38\u91cf\" rel=\"nofollow\"><br \/>\n           \u903b\u8f91\u5c42\u4e2d\u5b9a\u4e49\u7684\u4e00\u4e9b\u5e38\u91cf<br \/>\n          <\/a>\n         <\/li>\n<\/ul>\n<\/li>\n<li>\n        <a href=\"#\u663e\u793a\u5c42fsdrawh\" rel=\"nofollow\"><br \/>\n         \u663e\u793a\u5c42fsDrawh<br \/>\n        <\/a>\n       <\/li>\n<\/ul>\n<\/li>\n<li>\n      <a href=\"#\u7a0b\u5e8f\u6267\u884c\u6d41\u7a0bfstesth\" rel=\"nofollow\"><br \/>\n       \u7a0b\u5e8f\u6267\u884c\u6d41\u7a0bfsTesth<br \/>\n      <\/a>\n     <\/li>\n<li>\n      <a href=\"#\u5c0f\u7ed3\" rel=\"nofollow\"><br \/>\n       \u5c0f\u7ed3<br \/>\n      <\/a>\n     <\/li>\n<li>\n      <a href=\"#\u6700\u65b0\u4ee3\u7801\u83b7\u53d6\" rel=\"nofollow\"><br \/>\n       \u6700\u65b0\u4ee3\u7801\u83b7\u53d6<br \/>\n      <\/a>\n     <\/li>\n<\/ul><\/div>\n<\/p><\/div>\n<\/p>\n<h2 id=\"\u7a0b\u5e8f\u7b80\u4ecb\">\n   \u7a0b\u5e8f\u7b80\u4ecb<br \/>\n  <\/h2>\n<p>\n   \u8be5\u7a0b\u5e8f\u4e3a\u53ef\u89c6\u5316\u754c\u9762\u4e0b\u7684\u98de\u884c\u5c04\u51fb\u6e38\u620f\u3002\u7a0b\u5e8f\u4e2d\uff0c\u4e0b\u65b9\u7684<br \/>\n   <code><br \/>\n    *<br \/>\n   <\/code><br \/>\n   \u7b26\u53f7\u4ee3\u8868\u73a9\u5bb6\u7684\u98de\u673a\uff0c\u4e0a\u65b9\u7684<br \/>\n   <code><br \/>\n    +<br \/>\n   <\/code><br \/>\n   \u7b26\u53f7\u4ee3\u8868\u654c\u65b9\u98de\u673a\uff0c<br \/>\n   <code><br \/>\n    o<br \/>\n   <\/code><br \/>\n   \u4ee3\u8868\u5c04\u51fa\u7684\u5b50\u5f39\uff0c\u4f7f\u7528<br \/>\n   <code><br \/>\n    a<br \/>\n   <\/code><br \/>\n   \u952e\u548c<br \/>\n   <code><br \/>\n    d<br \/>\n   <\/code><br \/>\n   \u952e\u63a7\u5236\u98de\u673a\u5411\u5de6\u5411\u53f3\u79fb\u52a8\uff0c\u4f7f\u7528\u7a7a\u683c\u952e\u9000\u51fa\u6e38\u620f\u3002\u5f53\u5b50\u5f39\u51fb\u4e2d\u654c\u65b9\u98de\u673a\u540e\uff0c\u5f97\u4e00\u5206\uff0c\u5f53\u73a9\u5bb6\u88ab\u51fb\u4e2d\u540e\uff0c\u5c4f\u5e55\u4e0a\u4f1a\u663e\u793a<br \/>\n   <code><br \/>\n    You are hit!<br \/>\n   <\/code><br \/>\n   \u3002\n  <\/p>\n<h3 id=\"\u7a0b\u5e8f\u4eae\u70b9\">\n   \u7a0b\u5e8f\u4eae\u70b9<br \/>\n  <\/h3>\n<ul>\n<li>\n    \u5c06\u903b\u8f91\u5c42\u548c\u663e\u793a\u5c42\u5206\u5f00\uff0c\u4fbf\u4e8e\u66f4\u6362\u663e\u793a\u6837\u5f0f\u3002\n   <\/li>\n<li>\n    \u903b\u8f91\u5c42\u53ef\u4ee5\u7528\u4e8e\u4e4b\u540e\u7c7b\u4f3c\u6e38\u620f\u7684\u5f00\u53d1\u4e2d\u3002\n   <\/li>\n<li>\n    \u5e95\u5c42\u4f7f\u7528\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u6570\u8868\u793a\u5750\u6807\uff0c\u5177\u6709\u66f4\u9ad8\u7684\u7cbe\u5ea6\u3002\n   <\/li>\n<li>\n    \u5b9a\u4e49\u4e86\u5f02\u5e38\u7c7b\u578b\u3002\n   <\/li>\n<li>\n    \u5b9a\u4e49\u4e86\u6a21\u677f\u7c7b<br \/>\n    <code><br \/>\n     fsPoint&lt;T&gt;<br \/>\n    <\/code><br \/>\n    \u3002\n   <\/li>\n<li>\n    \u4ee3\u7801\u4e2d\u6709\u4e30\u5bcc\u7684\u6ce8\u91ca\uff0c\u4ee3\u7801\u98ce\u683c\u826f\u597d\uff0c\u4fbf\u4e8e\u9605\u8bfb\u3002\n   <\/li>\n<li>\n    \u4f7f\u7528chrono\u5e93\u5904\u7406\u6709\u5173\u8ba1\u65f6\u7684\u95ee\u9898\u3002\n   <\/li>\n<\/ul>\n<h2 id=\"\u7a0b\u5e8f\u7ed3\u6784\">\n   \u7a0b\u5e8f\u7ed3\u6784<br \/>\n  <\/h2>\n<p>\n   \u8be5\u7a0b\u5e8f\u5728\u8bbe\u8ba1\u4e0a\u5305\u62ec\u903b\u8f91\u5c42\u548c\u663e\u793a\u5c42\u4e24\u5c42\uff0c\u76ee\u524d\u663e\u793a\u5c42\u4f7f\u7528\u63a7\u5236\u53f0\u6709\u5173\u51fd\u6570\u5b9e\u73b0\u3002\u903b\u8f91\u5c42\u4e0d\u4f9d\u8d56\u4e8e\u73b0\u5b9e\u5c42\uff0c\u4ece\u800c\u4fdd\u8bc1\u4e86\u4e00\u5b9a\u7684\u6269\u5c55\u6027\u3002\n  <\/p>\n<h3 id=\"\u903b\u8f91\u5c42fsobjecth\">\n   \u903b\u8f91\u5c42\uff08fsObject.h\uff09<br \/>\n  <\/h3>\n<p>\n   \u903b\u8f91\u5c42\u7684\u5b9a\u4e49\u548c\u5b9e\u73b0\u5728<br \/>\n   <code><br \/>\n    fsObjects.h<br \/>\n   <\/code><br \/>\n   \u53ca<br \/>\n   <code><br \/>\n    fsObjects.cpp<br \/>\n   <\/code><br \/>\n   \u4e2d\u3002\u4e0b\u9762\u662f\u5bf9\u903b\u8f91\u5c42\u7684\u4ecb\u7ecd\u3002\n  <\/p>\n<h4 id=\"\u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b\">\n   \u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b<br \/>\n  <\/h4>\n<h5 id=\"fspoint-class\">\n   fsPoint Class<br \/>\n  <\/h5>\n<p>\n   \u5b58\u50a8\u7a0b\u5e8f\u4e2d\u6240\u9700\u7684\u70b9\u7684\u5750\u6807\u3002\u8fd9\u662f\u4e00\u4e2a\u6a21\u677f\u7c7b\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs haskell\">    template &lt;typename <span class=\"hljs-type\">T<\/span>&gt;\n<span class=\"hljs-class\">    <span class=\"hljs-keyword\">class<\/span> fsPoint {\n    public:\n        <span class=\"hljs-type\">T<\/span> x, y; \/\/ \u5f52\u4e00\u5316\u4e4b\u540e\u7684\u5750\u6807\u4f4d\u7f6e\uff0c\u5de6\u4e0a\u89d2\u4e3a0,0  \u53f3\u4e0b\u89d2\u4e3a1,1\n        fsPoint<span class=\"hljs-container\">()<\/span> {};\n        fsPoint<span class=\"hljs-container\">(<span class=\"hljs-type\">T<\/span> <span class=\"hljs-title\">xval<\/span>, <span class=\"hljs-type\">T<\/span> <span class=\"hljs-title\">yval<\/span>)<\/span> :x<span class=\"hljs-container\">(<span class=\"hljs-title\">xval<\/span>)<\/span>, y<span class=\"hljs-container\">(<span class=\"hljs-title\">yval<\/span>)<\/span> {};\n        fsPoint&lt;<span class=\"hljs-type\">T<\/span>&gt; &amp; operator = <span class=\"hljs-container\">(<span class=\"hljs-title\">const<\/span> <span class=\"hljs-title\">fsPoint<\/span>&lt;<span class=\"hljs-type\">T<\/span>&gt; &amp; <span class=\"hljs-title\">rval<\/span>)<\/span>;\n    };<\/span><\/code><\/pre>\n<h5 id=\"\u4e00\u4e9b\u679a\u4e3e\u7c7b\u578b\">\n   \u4e00\u4e9b\u679a\u4e3e\u7c7b\u578b<br \/>\n  <\/h5>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs rust\">    <span class=\"hljs-comment\">\/\/ \u98de\u673a\u5b50\u5f39\u6765\u6e90<\/span>\n    <span class=\"hljs-keyword\">enum<\/span> <span class=\"hljs-title\">bulletSource<\/span> {\n        player = <span class=\"hljs-number\">1<\/span>,  <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u6765\u81ea\u73a9\u5bb6<\/span>\n        enemy = <span class=\"hljs-number\">2<\/span>,  <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u6765\u81ea\u654c\u4eba<\/span>\n        playerFriend = <span class=\"hljs-number\">3<\/span>  <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u6765\u81ea\u73a9\u5bb6\u7684\u53cb\u519b<\/span>\n    };\n    <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u5c04\u51fb\u65b9\u5411<\/span>\n    <span class=\"hljs-keyword\">enum<\/span> <span class=\"hljs-title\">Direction<\/span>\n    {\n        up = <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u5411\u4e0a\u98de\u884c<\/span>\n        down = <span class=\"hljs-number\">2<\/span>,  <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u5411\u4e0b\u98de\u884c<\/span>\n        right = <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u5411\u5de6\u98de\u884c<\/span>\n        left = <span class=\"hljs-number\">4<\/span> <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u5411\u53f3\u98de\u884c<\/span>\n    };<\/code><\/pre>\n<h4 id=\"\u5f02\u5e38\u7c7b\u578b\">\n   \u5f02\u5e38\u7c7b\u578b<br \/>\n  <\/h4>\n<h5 id=\"fsinvalidinitializepointvalexception-class\">\n   fsInvalidInitializePointValException Class<br \/>\n  <\/h5>\n<p>\n   \u521b\u5efafsObject\u65f6\u6240\u7ed9\u51fa\u7684\u70b9\u4e0d\u6ee1\u8db3\u5de6\u4e0a\u70b9\u548c\u53f3\u4e0b\u70b9\u4e4b\u95f4\u7684\u5750\u6807\u5173\u7cfb\u3002\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs css\">    <span class=\"hljs-tag\">class<\/span> <span class=\"hljs-tag\">fsInvalidInitializePointValException<\/span> : <span class=\"hljs-tag\">public<\/span> <span class=\"hljs-tag\">std<\/span><span class=\"hljs-pseudo\">::logic_error<\/span> <span class=\"hljs-rules\">{\n    <span class=\"hljs-rule\"><span class=\"hljs-attribute\">public<\/span>:<span class=\"hljs-value\">\n        <span class=\"hljs-function\">fsInvalidInitializePointValException()<\/span> <\/span><\/span>;\n    <span class=\"hljs-rule\">}<\/span><\/span>;<\/code><\/pre>\n<h5 id=\"fsinvalidfiretimeexception-class\">\n   fsInvalidFireTimeException Class<br \/>\n  <\/h5>\n<p>\n   \u5982\u679c\u5728\u89c4\u5b9a\u7684\u4e24\u6b21\u5f00\u706b\u95f4\u9694\u65f6\u95f4\u5185\u6267\u884c<br \/>\n   <code><br \/>\n    fsAirCraft.fire()<br \/>\n   <\/code><br \/>\n   \u5c31\u4f1a\u629b\u51fa\u6b64\u5f02\u5e38\u3002\u63d0\u793a\u9700\u8981\u7b49\u5f85\u8db3\u591f\u7684\u65f6\u95f4\u540e\u624d\u80fd\u6267\u884c\u4e0a\u8ff0\u65b9\u6cd5\u3002\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs css\">    <span class=\"hljs-tag\">class<\/span> <span class=\"hljs-tag\">fsInvalidFireTimeException<\/span> <span class=\"hljs-pseudo\">:public<\/span> <span class=\"hljs-tag\">std<\/span><span class=\"hljs-pseudo\">::logic_error<\/span> <span class=\"hljs-rules\">{\n    <span class=\"hljs-rule\"><span class=\"hljs-attribute\">public<\/span>:<span class=\"hljs-value\">\n        <span class=\"hljs-function\">fsInvalidFireTimeException()<\/span> <\/span><\/span>;\n    <span class=\"hljs-rule\">}<\/span><\/span>;<\/code><\/pre>\n<h5 id=\"fsinvalidbulletspeedinexception-class\">\n   fsInvalidBulletSpeedInException Class<br \/>\n  <\/h5>\n<p>\n   \u8f93\u5165\u7684\u5b50\u5f39\u901f\u5ea6\u65e0\u6548\u3002\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs css\"><span class=\"hljs-tag\">class<\/span> <span class=\"hljs-tag\">fsInvalidBulletSpeedInException<\/span> : <span class=\"hljs-tag\">public<\/span> <span class=\"hljs-tag\">std<\/span><span class=\"hljs-pseudo\">::logic_error<\/span> <span class=\"hljs-rules\">{\n    <span class=\"hljs-rule\"><span class=\"hljs-attribute\">public<\/span>:<span class=\"hljs-value\">\n        <span class=\"hljs-function\">fsInvalidBulletSpeedInException()<\/span><\/span><\/span>;\n    <span class=\"hljs-rule\">}<\/span><\/span>;<\/code><\/pre>\n<h5 id=\"fsoutrangemovetopointexception-class\">\n   fsOutRangeMoveToPointException Class<br \/>\n  <\/h5>\n<p>\n   \u5728<br \/>\n   <code><br \/>\n    moveToPoint()<br \/>\n   <\/code><br \/>\n   \u65b9\u6cd5\u4e2d\uff0c\u8f93\u5165\u7684\u76ee\u6807\u70b9\u8d85\u51fa\u4e86\u5c4f\u5e55\u663e\u793a\u8303\u56f4\uff08\u4e5f\u5373\u76ee\u6807\u70b9\u7684\u5750\u6807\u4e4b\u4e00\u4e0d\u57280\u52301\u4e4b\u95f4\uff09\u3002\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs css\"><span class=\"hljs-tag\">class<\/span> <span class=\"hljs-tag\">fsOutRangeMoveToPointException<\/span> : <span class=\"hljs-tag\">public<\/span> <span class=\"hljs-tag\">std<\/span><span class=\"hljs-pseudo\">::logic_error<\/span> <span class=\"hljs-rules\">{\n    <span class=\"hljs-rule\"><span class=\"hljs-attribute\">public<\/span>:<span class=\"hljs-value\">\n        <span class=\"hljs-function\">fsOutRangeMoveToPointException()<\/span><\/span><\/span>;\n    <span class=\"hljs-rule\">}<\/span><\/span>;\n<\/code><\/pre>\n<h4 id=\"\u6e38\u620f\u4e2d\u4f7f\u7528\u7684\u7269\u4f53\">\n   \u6e38\u620f\u4e2d\u4f7f\u7528\u7684\u7269\u4f53<br \/>\n  <\/h4>\n<p>\n   \u6240\u6709\u7684\u7269\u4f53\uff0c\u5305\u62ec\u73a9\u5bb6\u98de\u673a\uff0c\u654c\u65b9\u98de\u673a\u548c\u5b50\u5f39\uff0c\u4ee5\u53ca\u5206\u6570\u663e\u793a\uff0c\u90fd\u662f\u4e00\u4e2a\u7c7b\uff0c\u5176\u57fa\u7c7b\u4e3a<br \/>\n   <code><br \/>\n    fsObject Class<br \/>\n   <\/code><br \/>\n   <br \/>\n   \u6bcf\u4e00\u4e2a\u7269\u4f53\u90fd\u901a\u8fc7\u4e24\u4e2a\u70b9\uff0c\u5373\u4e24\u4e2a<br \/>\n   <code><br \/>\n    fsPoint&lt;double&gt;<br \/>\n   <\/code><br \/>\n   \u7c7b\u578b\u7684\u53d8\u91cf\u6765\u786e\u5b9a\u6240\u5904\u4f4d\u7f6e\uff0c\u4e24\u4e2a\u70b9\u5206\u522b\u4e3a\u5de6\u4e0a\u89d2\u7684\u70b9\u548c\u53f3\u4e0b\u89d2\u7684\u70b9\u3002\u7a0b\u5e8f\u4e2d\u5c06\u6240\u5904\u7684\u7a7a\u95f4\u8fdb\u884c\u4e86\u5f52\u4e00\u5316\uff0c\u6240\u6709\u7684\u7269\u4f53\u7684\u6a2a\u7eb5\u5750\u6807\u90fd\u53ea\u80fd\u57280\u52301\u4e4b\u95f4\u3002\u4e4b\u540e\u518d\u901a\u8fc7\u663e\u793a\u5c42\u5c06\u5176\u7ed8\u5236\u5230\u5c4f\u5e55\u4e0a\u3002\n  <\/p>\n<h5 id=\"fsobject-class\">\n   fsObject Class<br \/>\n  <\/h5>\n<p>\n   \u6e38\u620f\u4e2d\u6240\u7528\u7269\u4f53\u7684\u57fa\u7c7b\uff0c\u8be5\u7c7b\u7684\u5b9a\u4e49\u5982\u4e0b\uff1a\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cs\">    class fsObject {\n    <span class=\"hljs-keyword\">public<\/span>:\n        <span class=\"hljs-title\">fsObject<\/span>() {};\n        fsObject(<span class=\"hljs-keyword\">const<\/span> fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; &amp; upperleft, <span class=\"hljs-comment\">\/\/ \u6307\u5b9a\u7269\u4f53\u5de6\u4e0a\u89d2\u7684\u4f4d\u7f6e<\/span>\n            <span class=\"hljs-keyword\">const<\/span> fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; &amp; lowerright, <span class=\"hljs-comment\">\/\/ \u6307\u5b9a\u7269\u4f53\u53f3\u4e0b\u89d2\u7684\u4f4d\u7f6e\uff0c\u8fd9\u4e24\u4e2a\u70b9\u786e\u5b9a\u540e\uff0c\u4e00\u4e2a\u7269\u4f53\u7684\u4f4d\u7f6e\u548c\u5927\u5c0f\u4e5f\u5c31\u5b8c\u5168\u786e\u5b9a\u4e86<\/span>\n            <span class=\"hljs-keyword\">const<\/span> fsColor &amp; fgc,  <span class=\"hljs-comment\">\/\/ \u6307\u5b9a\u7269\u4f53\u7684\u663e\u793a\u989c\u8272\uff0c\u5982\u679c\u4f7f\u7528\u63a7\u5236\u53f0\u8fdb\u884c\u8f93\u51fa\uff0c\u8fd9\u4e00\u53c2\u6570\u5c06\u4f1a\u88ab\u5ffd\u7565<\/span>\n            <span class=\"hljs-keyword\">char<\/span> sym = <span class=\"hljs-number\">0<\/span>  <span class=\"hljs-comment\">\/\/ \u6307\u5b9a\u7269\u4f53\u7684\u7b26\u53f7\uff0c\u4e3b\u8981\u7528\u4e8e\u5728\u63a7\u5236\u53f0\u4e2d\u663e\u793a\u8be5\u7269\u4f53\u3002<\/span>\n            );\n\n\n        <span class=\"hljs-comment\">\/\/ \u53d6\u5f97\u7269\u4f53\u5de6\u4e0a\u89d2\u7684\u4f4d\u7f6e<\/span>\n        fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; getUpperLeftCorner <span class=\"hljs-keyword\">const<\/span>();\n        <span class=\"hljs-comment\">\/\/ \u53d6\u5f97\u7269\u4f53\u53f3\u4e0b\u89d2\u7684\u4f4d\u7f6e<\/span>\n        fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; getLowerRightCorner <span class=\"hljs-keyword\">const<\/span>();\n        <span class=\"hljs-comment\">\/\/ \u53d6\u5f97\u8be5\u7269\u4f53\u7684\u7b26\u53f7<\/span>\n        <span class=\"hljs-keyword\">char<\/span> getSymbol() <span class=\"hljs-keyword\">const<\/span> ;\n        <span class=\"hljs-comment\">\/\/ \u4e3a\u7269\u4f53\u8bbe\u7f6e\u65b0\u7684\u7b26\u53f7<\/span>\n        <span class=\"hljs-keyword\">void<\/span> setSymbol(<span class=\"hljs-keyword\">char<\/span> c) ;\n        <span class=\"hljs-comment\">\/\/ \u5f97\u5230\u6216\u8bbe\u7f6e\u7269\u4f53\u7684\u53ef\u89c1\u6027\uff0c\u8fd4\u56de0\u4e3a\u4e0d\u53ef\u89c1\uff0c\u8fd4\u56de1\u4e3a\u5b8c\u5168\u53ef\u89c1\uff0c\u5982\u679c\u7269\u4f53\u4e0d\u53ef\u89c1\uff0c\u5176\u4e5f\u5c31\u4e0d\u80fd\u51fb\u4e2d\u98de\u673a<\/span>\n        <span class=\"hljs-keyword\">int<\/span> getVisible() <span class=\"hljs-keyword\">const<\/span> { <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">this<\/span>-&gt;visible; }\n        <span class=\"hljs-keyword\">void<\/span> setVisible(<span class=\"hljs-keyword\">int<\/span> newVisible) { <span class=\"hljs-keyword\">this<\/span>-&gt;visible = newVisible; <span class=\"hljs-keyword\">return<\/span>; }\n\n\n        <span class=\"hljs-comment\">\/\/ \u79fb\u52a8\u4f4d\u7f6e\uff0c\u5411\u5de6\u79fb\u52a8\u4e00\u4e2a\u5355\u4f4d\uff08\u6b65\u957f\u4e3aFS_DEFAULT_MOVE_STEP\uff09 \u79fb\u52a8\u6210\u529f\u5219\u8fd4\u56de0 \u79fb\u52a8\u5931\u8d25\u8fd4\u56de1<\/span>\n        <span class=\"hljs-keyword\">int<\/span> moveleft() ;\n        <span class=\"hljs-comment\">\/\/ \u79fb\u52a8\u4f4d\u7f6e\uff0c\u5411\u53f3\u79fb\u52a8\u4e00\u4e2a\u5355\u4f4d\uff08\u6b65\u957f\u4e3aFS_DEFAULT_MOVE_STEP\uff09 \u79fb\u52a8\u6210\u529f\u5219\u8fd4\u56de0 \u79fb\u52a8\u5931\u8d25\u8fd4\u56de1<\/span>\n        <span class=\"hljs-keyword\">int<\/span> moveright();\n        <span class=\"hljs-comment\">\/\/\u5728\u7ad6\u76f4\u65b9\u5411\u4e0a\u79fb\u52a8\u4f4d\u7f6e\uff0c\u5982\u679c\u8f93\u5165\u7684delta\u5bfc\u81f4\u7269\u4f53\u7684\u5de6\u4e0a\u89d2\u8d85\u51fa\u5c4f\u5e55\uff0c\u5c31\u5c06\u5176\u7f6e\u4e3a\u6700\u8fd1\u7684FS_DEFAULT_COORD_UPPER_LIMIT_Y\u6216FS_DEFAULT_COORD_UPPER_LIMIT_Y<\/span>\n        <span class=\"hljs-keyword\">int<\/span> moveVertically(<span class=\"hljs-keyword\">double<\/span> delta) ;\n        <span class=\"hljs-comment\">\/\/\u5728\u6c34\u5e73\u65b9\u5411\u4e0a\u79fb\u52a8\u4f4d\u7f6e\uff0c\u5982\u679c\u8f93\u5165\u7684delta\u5bfc\u81f4\u7269\u4f53\u7684\u5de6\u4e0a\u89d2\u8d85\u51fa\u5c4f\u5e55\uff0c\u5c31\u5c06\u5176\u7f6e\u4e3a\u6700\u8fd1\u7684FS_DEFAULT_COORD_UPPER_LIMIT_X\u6216FS_DEFAULT_COORD_UPPER_LIMIT_X<\/span>\n        <span class=\"hljs-keyword\">int<\/span> moveHorizontally(<span class=\"hljs-keyword\">double<\/span> delta);\n        <span class=\"hljs-comment\">\/\/ \u76f4\u63a5\u5c06\u7269\u4f53\u79fb\u5230\u5de6\u4e0a\u89d2\u4e0e\u67d0\u4e00\u70b9\u91cd\u5408\u7684\u4f4d\u7f6e\uff0c\u6210\u529f\u5219\u8fd4\u56de1\uff0c\u5931\u8d25\u8fd4\u56de0<\/span>\n        <span class=\"hljs-keyword\">int<\/span> moveToPoint(<span class=\"hljs-keyword\">const<\/span> fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; &amp; dest);\n\n        <span class=\"hljs-comment\">\/\/ \u6253\u5370\u51fa\u7269\u4f53\u5de6\u4e0a\u89d2\u7684\u4f4d\u7f6e<\/span>\n        <span class=\"hljs-keyword\">void<\/span> printpos() <span class=\"hljs-keyword\">const<\/span> ;\n    };<\/code><\/pre>\n<h5 id=\"fsbullet-class\">\n   fsBullet Class<br \/>\n  <\/h5>\n<p>\n   \u7528\u4e8e\u8868\u793a\u6e38\u620f\u4e2d\u98de\u884c\u7684\u5b50\u5f39\uff0c\u5176\u5b9a\u4e49\u53ca\u6709\u5173\u65b9\u6cd5\u5982\u4e0b\uff1a\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cs\">    <span class=\"hljs-comment\">\/\/ \u5b50\u5f39<\/span>\n    class fsBullet : <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title\">fsObject<\/span> (\n    <span class=\"hljs-keyword\">public<\/span>:\n        <span class=\"hljs-title\">fsBullet<\/span>() {};\n        fsBullet(bulletSource sourceOfBullet,  <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u7684\u6765\u6e90<\/span>\n            Direction directionOfBullet,  <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u7684\u98de\u884c\u65b9\u5411<\/span>\n            <span class=\"hljs-keyword\">int<\/span> damageOfBullet, <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u7684\u5a01\u529b\uff0c\u4e5f\u5373\u5b50\u5f39\u51fb\u4e2d\u540e\u73a9\u5bb6\u83b7\u5f97\u591a\u5c11\u5206<\/span>\n            fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; sourceulc, <span class=\"hljs-comment\">\/\/ \u53d1\u51fa\u5b50\u5f39\u7269\u4f53\u7684\u5de6\u4e0a\u89d2\u5750\u6807\uff0c\u901a\u8fc7\u8be5\u5750\u6807\u53ef\u4ee5\u786e\u5b9a\u5b50\u5f39\u7684\u521d\u59cb\u4f4d\u7f6e<\/span>\n            <span class=\"hljs-keyword\">double<\/span> bulletVec = FS_DEFAULT_BULLET_FLY_SPEED  <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u7684\u98de\u884c\u901f\u5ea6<\/span>\n            ) ;\n\n        <span class=\"hljs-comment\">\/\/ \u66f4\u65b0\u5b50\u5f39\u7684\u4f4d\u7f6e\uff0c\u6bcf\u6b21\u5faa\u73af\u4e2d\u90fd\u8981\u6267\u884c\u6b64\u51fd\u6570\u4ee5\u66f4\u65b0\u5b50\u5f39\u7684\u4f4d\u7f6e\uff0c\u5982\u679c\u8fd4\u56de0\uff0c\u5219\u8868\u793a\u5b50\u5f39\u5df2\u7ecf\u98de\u884c\u5230\u8fb9\u7f18\u3002<\/span>\n        <span class=\"hljs-keyword\">int<\/span> updataPosition();\n    };<\/code><\/pre>\n<h5 id=\"fsaircraft-class\">\n   fsAircraft Class<br \/>\n  <\/h5>\n<p>\n   \u6e38\u620f\u4e2d\u6240\u6709\u98de\u673a\u7684\u57fa\u7c7b\uff0c\u73a9\u5bb6\u7684\u98de\u673a\u548c\u654c\u4eba\u7684\u98de\u673a\u5747\u7531\u6b64\u6d3e\u751f\u3002\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cs\">class fsAircraft : <span class=\"hljs-keyword\">public<\/span> fsObject {\n    <span class=\"hljs-keyword\">public<\/span>:\n        <span class=\"hljs-title\">fsAircraft<\/span>() {};\n        fsAircraft(fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; upperleft,  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u5de6\u4e0a\u89d2\u7684\u4f4d\u7f6e<\/span>\n            fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; lowerright,   <span class=\"hljs-comment\">\/\/ \u98de\u673a\u53f3\u4e0b\u89d2\u7684\u4f4d\u7f6e<\/span>\n            fsColor fgc,  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u7684\u663e\u793a\u989c\u8272\uff0c\u5728\u63a7\u5236\u53f0\u4e2d\u6b64\u53c2\u6570\u65e0\u6548<\/span>\n            std::chrono::milliseconds fireinterval = FS_DEFAULT_FIRE_INTERVAL  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u7684\u5b50\u5f39\u53d1\u5c04\u95f4\u9694\uff0c\u5728\u7ecf\u8fc7\u6b64\u6bb5\u65f6\u95f4\u540e\u98de\u673a\u624d\u80fd\u53d1\u5c04\u5b50\u5f39<\/span>\n            ) ;\n        <span class=\"hljs-comment\">\/\/ \u53d1\u5c04\u5b50\u5f39\u7684\u76f8\u5173\u903b\u8f91\uff0c\u5224\u65ad\u80fd\u5426\u53d1\u5c04\u5b50\u5f39\uff0c\u4e5f\u5373\u81ea\u4e0a\u4e00\u6b21\u53d1\u5c04\u5b50\u5f39\u4e4b\u540e\uff0c\u662f\u5426\u7ecf\u5386\u4e86\u8db3\u591f\u7684\u65f6\u95f4<\/span>\n        <span class=\"hljs-comment\">\/\/ \u5982\u679c\u53ef\u4ee5\u53d1\u5c04\u5b50\u5f39\u5219\u8fd4\u56de1\uff0c\u4e0d\u80fd\u5219\u8fd4\u56de0<\/span>\n        inline <span class=\"hljs-keyword\">int<\/span> fireReady();\n        <span class=\"hljs-comment\">\/\/ \u5982\u679c\u80fd\u591f\u53d1\u5c04\u5b50\u5f39\uff0c\u5219\u6267\u884c\u6b64\u51fd\u6570\uff0c\u4ee5\u8fd4\u56defsBullet\u7684\u5bf9\u8c61\uff0c\u5373\u8be5\u98de\u673a\u6240\u53d1\u5c04\u7684\u5b50\u5f39<\/span>\n        fsBullet fire();\n\n        <span class=\"hljs-comment\">\/\/ \u8bbe\u7f6e\u65b0\u7684\u98de\u673a\u5b50\u5f39\u4f24\u5bb3<\/span>\n        <span class=\"hljs-keyword\">int<\/span> setBullteDamage(<span class=\"hljs-keyword\">int<\/span> newBulletDamage);\n        <span class=\"hljs-comment\">\/\/ \u8bbe\u7f6e\u98de\u673a\u662f\u73a9\u5bb6\u7684\u98de\u673a\u8fd8\u662f\u654c\u4eba\u7684\u98de\u673a<\/span>\n        <span class=\"hljs-keyword\">void<\/span> setSource(bulletSource newSource);\n        <span class=\"hljs-comment\">\/\/ \u8bbe\u7f6e\u65b0\u7684\u5b50\u5f39\u98de\u884c\u65b9\u5411<\/span>\n        <span class=\"hljs-keyword\">void<\/span> setFireDirection(Direction newDirection);\n\n        <span class=\"hljs-comment\">\/\/ \u8fd4\u56de\u5269\u4f59\u751f\u547d\u503c\uff0c\u5f53\u8fd4\u56de0\u6216\u8005\u8d1f\u6570\u65f6\u8bf4\u660e\u6b7b\u4ea1\uff08\u672c\u7a0b\u5e8f\u4e2d\u6ca1\u6709\u4f7f\u7528\uff09<\/span>\n        <span class=\"hljs-keyword\">int<\/span> getLifeLeft() <span class=\"hljs-keyword\">const<\/span>;\n\n        <span class=\"hljs-comment\">\/\/ \u5f53\u88ab\u51fb\u4e2d\u540e\u8c03\u7528\u6b64\u51fd\u6570\uff0c\u8fd4\u56de\u5269\u4f59\u751f\u547d\u503c  \u5f53\u8fd4\u56de0\u6216\u8005\u8d1f\u6570\u65f6\u8bf4\u660e\u6b7b\u4ea1  \u5b50\u5f39\u5a01\u529b\u4e3a\u8d1f\u6570\u8bf4\u660e\u4e3a\u751f\u547d\u8865\u7ed9\u5305<\/span>\n        <span class=\"hljs-keyword\">int<\/span> gotHit(<span class=\"hljs-keyword\">int<\/span> bulletDamage = <span class=\"hljs-number\">1<\/span>);\n}<\/code><\/pre>\n<h5 id=\"fsmyaircraft-class\">\n   fsMyAircraft Class<br \/>\n  <\/h5>\n<p>\n   \u73a9\u5bb6\u7684\u98de\u673a\uff0c\u7ed3\u5408<br \/>\n   <code><br \/>\n    fsObject<br \/>\n   <\/code><br \/>\n   \u4e2d\u7684<br \/>\n   <code><br \/>\n    moveleft()<br \/>\n   <\/code><br \/>\n   \u548c<br \/>\n   <code><br \/>\n    moveright()<br \/>\n   <\/code><br \/>\n   \u65b9\u6cd5\u73a9\u5bb6\u53ef\u4ee5\u901a\u8fc7\u952e\u76d8\u64cd\u7eb5\u5176\u4f4d\u7f6e\u3002\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cpp\">    <span class=\"hljs-keyword\">class<\/span> fsMyAircraft : <span class=\"hljs-keyword\">public<\/span> fsAircraft {\n    <span class=\"hljs-keyword\">public<\/span>:\n        fsMyAircraft(fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; upperleft,  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u5de6\u4e0a\u89d2\u7684\u4f4d\u7f6e<\/span>\n            fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; lowerright,   <span class=\"hljs-comment\">\/\/ \u98de\u673a\u53f3\u4e0b\u89d2\u7684\u4f4d\u7f6e<\/span>\n            fsColor fgc,   <span class=\"hljs-comment\">\/\/ \u98de\u673a\u7684\u663e\u793a\u989c\u8272\uff0c\u5728\u63a7\u5236\u53f0\u4e2d\u6b64\u53c2\u6570\u65e0\u6548<\/span>\n            <span class=\"hljs-built_in\">std<\/span>::chrono::milliseconds  fireinterval = FS_DEFAULT_FIRE_INTERVAL  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u7684\u5b50\u5f39\u53d1\u5c04\u95f4\u9694\uff0c\u53d1\u5c04\u5b50\u5f39\u540e\uff0c\u518d\u7ecf\u8fc7\u6b64\u6bb5\u65f6\u95f4\u540e\u624d\u80fd\u518d\u6b21\u53d1\u5c04\u5b50\u5f39<\/span>\n            ) ;\n    };<\/code><\/pre>\n<h5 id=\"fsenemyaircraft-class\">\n   fsEnemyAircraft Class<br \/>\n  <\/h5>\n<p>\n   \u654c\u4eba\u7684\u98de\u673a\uff0c\u98de\u884c\u65b9\u5411\u968f\u673a\u51b3\u5b9a\u3002\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cpp\"><span class=\"hljs-keyword\">class<\/span> fsEnemyAircraft : <span class=\"hljs-keyword\">public<\/span> fsAircraft {\n    <span class=\"hljs-keyword\">public<\/span>:\n        fsEnemyAircraft(fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; upperleft, <span class=\"hljs-comment\">\/\/ \u98de\u673a\u5de6\u4e0a\u89d2\u7684\u4f4d\u7f6e<\/span>\n            fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; lowerright,  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u53f3\u4e0b\u89d2\u7684\u4f4d\u7f6e<\/span>\n            fsColor fgc,  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u7684\u663e\u793a\u989c\u8272\uff0c\u5728\u63a7\u5236\u53f0\u4e2d\u6b64\u53c2\u6570\u65e0\u6548<\/span>\n            <span class=\"hljs-built_in\">std<\/span>::chrono::milliseconds  fireinterval = FS_DEFAULT_FIRE_INTERVAL  <span class=\"hljs-comment\">\/\/ \u98de\u673a\u7684\u5b50\u5f39\u53d1\u5c04\u95f4\u9694\uff0c\u5728\u7ecf\u8fc7\u6b64\u6bb5\u65f6\u95f4\u540e\u98de\u673a\u624d\u80fd\u53d1\u5c04\u5b50\u5f39<\/span>\n            );\n\n        <span class=\"hljs-comment\">\/\/ \u66f4\u65b0\u654c\u673a\u7684\u4f4d\u7f6e\uff0c\u654c\u673a\u968f\u673a\u79fb\u52a8\uff0c\u6bcf\u9694\u4e00\u6bb5\u65f6\u95f4\u66f4\u6362\u4e00\u4e2a\u65b9\u5411\uff0c\u79fb\u52a8\u4f1a\u5728\u4e00\u4e2a\u77e9\u5f62\u6846\u4e2d\u8fdb\u884c<\/span>\n        <span class=\"hljs-keyword\">int<\/span> updatePosition();<\/code><\/pre>\n<h5 id=\"fsscoreboard-class\">\n   fsScoreBoard Class<br \/>\n  <\/h5>\n<p>\n   \u8ba1\u5206\u7248 \u7528\u4e8e\u8bb0\u5f55\u73a9\u5bb6\u7684\u5206\u6570\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cs\">class fsScoreBoard : <span class=\"hljs-keyword\">public<\/span> fsObject {\n    <span class=\"hljs-keyword\">public<\/span>:\n        <span class=\"hljs-title\">fsScoreBoard<\/span>() {};\n        fsScoreBoard(<span class=\"hljs-keyword\">const<\/span> fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; &amp; upperleft, <span class=\"hljs-comment\">\/\/ \u8ba1\u5206\u7248\u5de6\u4e0a\u89d2\u7684\u4f4d\u7f6e \u63a8\u8350\u5c06\u5de6\u4e0a\u89d2\u7684\u6a2a\u5750\u6807\u8bbe\u7f6e\u4e3a\u5927\u4e8e1\u7684\u6570\uff0c\u907f\u514d\u5206\u6570\u7684\u663e\u793a\u4e0e\u6e38\u620f\u753b\u9762\u91cd\u53e0<\/span>\n            <span class=\"hljs-keyword\">const<\/span> fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt; &amp; lowerright,  <span class=\"hljs-comment\">\/\/ \u8ba1\u5206\u7248\u53f3\u4e0b\u89d2\u7684\u4f4d\u7f6e<\/span>\n            <span class=\"hljs-keyword\">const<\/span> fsColor &amp; fgc = FS_DEFAULT_SCOREBOARD_COLOR  <span class=\"hljs-comment\">\/\/ \u8ba1\u5206\u7248\u989c\u8272\uff0c\u5728\u63a7\u5236\u53f0\u60c5\u51b5\u4e0b\u65e0\u6548<\/span>\n            ) ;\n        <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u8ba1\u5206\u7248\u5206\u6570<\/span>\n        <span class=\"hljs-keyword\">int<\/span> getCurScore() <span class=\"hljs-keyword\">const<\/span> ;\n        <span class=\"hljs-comment\">\/\/ \u589e\u52a0\u5f97\u5206<\/span>\n        <span class=\"hljs-keyword\">void<\/span> addScore(<span class=\"hljs-keyword\">int<\/span> delta = <span class=\"hljs-number\">1<\/span>) ;\n    };<\/code><\/pre>\n<h4 id=\"\u903b\u8f91\u5c42\u4e2d\u63d0\u4f9b\u7684\u4e00\u4e9b\u51fd\u6570\">\n   \u903b\u8f91\u5c42\u4e2d\u63d0\u4f9b\u7684\u4e00\u4e9b\u51fd\u6570<br \/>\n  <\/h4>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cpp\">    <span class=\"hljs-comment\">\/\/ \u5224\u65ad\u4e24\u4e2a\u7269\u4f53\u662f\u5426\u91cd\u53e0 \u5982\u679c\u91cd\u53e0\u5c06\u8fd4\u56de1 \u5426\u5219\u8fd4\u56de0\uff0c\u4e3b\u8981\u7528\u6765\u5224\u5b9a\u5b50\u5f39\u662f\u5426\u51fb\u4e2d\u4e86\u98de\u673a<\/span>\n    <span class=\"hljs-keyword\">int<\/span> fsOverlap(<span class=\"hljs-keyword\">const<\/span> fsObject &amp; obj1, <span class=\"hljs-keyword\">const<\/span> fsObject &amp; obj2);\n\n    <span class=\"hljs-comment\">\/\/ \u5224\u65ad\u4e00\u4e2a\u70b9\u662f\u5426\u5728\u4e00\u4e2a\u77e9\u5f62\u4e2d\uff0c\u5305\u62ec\u5728\u77e9\u5f62\u8fb9\u4e0a\u7684\u60c5\u51b5\uff0c\u4e3b\u8981\u7528\u6765\u5b9e\u73b0fsOverlap<\/span>\n    <span class=\"hljs-keyword\">template<\/span> &lt;<span class=\"hljs-keyword\">typename<\/span> T&gt;   \n    <span class=\"hljs-keyword\">bool<\/span> fsPointInRect(fsPoint&lt;T&gt; point, fsPoint&lt;T&gt; RectUpperLeft, fsPoint&lt;T&gt; RectLowerRight);<\/code><\/pre>\n<h4 id=\"\u903b\u8f91\u5c42\u4e2d\u5b9a\u4e49\u7684\u4e00\u4e9b\u5e38\u91cf\">\n   \u903b\u8f91\u5c42\u4e2d\u5b9a\u4e49\u7684\u4e00\u4e9b\u5e38\u91cf<br \/>\n  <\/h4>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs lasso\"><span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_FIRE_INTERVAL std<span class=\"hljs-tag\">::chrono<\/span><span class=\"hljs-tag\">::milliseconds<\/span>(<span class=\"hljs-number\">500<\/span>)  <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u5f00\u706b\u95f4\u9694<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_FRAME_INTERVAL <span class=\"hljs-number\">10<\/span> <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u5237\u65b0\u9891\u7387\uff0c\u5373\u6bcf\u9694\u591a\u5c11\u6beb\u79d2\u5237\u65b0\u4e00\u6b21<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_MOVE_STEP <span class=\"hljs-number\">0.01<\/span>   <span class=\"hljs-comment\">\/\/ \u5728moveleft()\u65b9\u6cd5\u548cmoveright()\u65b9\u6cd5\u4e2d\u9ed8\u8ba4\u7684\u6bcf\u6b21\u79fb\u52a8\u8ddd\u79bb<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_MOVE_LEFT_KEY <span class=\"hljs-string\">'a'<\/span>  <span class=\"hljs-comment\">\/\/ \u63a7\u5236\u73a9\u5bb6\u98de\u673a\u5411\u5de6\u79fb\u52a8\u4e00\u4e2a\u5355\u4f4d\u6240\u5bf9\u5e94\u7684\u6309\u952e<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_MOVE_RIGHT_KEY <span class=\"hljs-string\">'d'<\/span> <span class=\"hljs-comment\">\/\/ \u63a7\u5236\u73a9\u5bb6\u98de\u673a\u5411\u53f3\u79fb\u52a8\u4e00\u4e2a\u5355\u4f4d\u6240\u5bf9\u5e94\u7684\u6309\u952e<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_ESCAPE_KEY <span class=\"hljs-string\">' '<\/span>  <span class=\"hljs-comment\">\/\/ \u9000\u51fa\u6e38\u620f\u6240\u4f7f\u7528\u7684\u6309\u952e<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_BULLET_FLY_SPEED <span class=\"hljs-number\">3.0<\/span>  <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u5b50\u5f39\u98de\u884c\u901f\u5ea6\uff0c3\u4ee3\u8868\u6bcf\u79d2\u98de\u884c\u4e09\u4e2a\u5c4f\u5e55<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_AIRCRAFT_FLY_SPEED <span class=\"hljs-number\">0.1<\/span>  <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u98de\u673a\u98de\u884c\u901f\u5ea6<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_BULLET_COLOR fsColor(<span class=\"hljs-number\">255<\/span>,<span class=\"hljs-number\">0<\/span>,<span class=\"hljs-number\">0<\/span>,<span class=\"hljs-number\">0<\/span>)  <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u5b50\u5f39\u989c\u8272<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_BULLET_SIZE <span class=\"hljs-number\">0.1<\/span> <span class=\"hljs-comment\">\/\/\u9ed8\u8ba4\u7684\u5b50\u5f39\u6b63\u65b9\u5f62\u8fb9\u957f<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_BULLET_SIZE_X <span class=\"hljs-number\">0.05<\/span> <span class=\"hljs-comment\">\/\/\u9ed8\u8ba4\u7684\u5b50\u5f39\u957f\u65b9\u5f62\u5728x\u8f74\u65b9\u5411\u7684\u957f\u5ea6<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_BULLET_SIZE_Y <span class=\"hljs-number\">0.1<\/span> <span class=\"hljs-comment\">\/\/\u9ed8\u8ba4\u7684\u5b50\u5f39\u957f\u65b9\u5f62\u5728y\u8f74\u65b9\u5411\u7684\u957f\u5ea6<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_PLAYER_SYMBOL <span class=\"hljs-string\">'*'<\/span>  <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u73a9\u5bb6\u7684\u98de\u673a\u7684\u7b26\u53f7<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_ENEMY_SYMBOL <span class=\"hljs-string\">'+'<\/span> <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u654c\u4eba\u7684\u98de\u673a\u7684\u7b26\u53f7<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_BULLET_SYMBOL <span class=\"hljs-string\">'o'<\/span> <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u5b50\u5f39\u7684\u7b26\u53f7<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_SCOREBOARD_COLOR fsColor(<span class=\"hljs-number\">0<\/span>,<span class=\"hljs-number\">255<\/span>,<span class=\"hljs-number\">0<\/span>,<span class=\"hljs-number\">0<\/span>)  <span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u8ba1\u5206\u7248\u989c\u8272<\/span>\n<span class=\"hljs-comment\">\/\/ \u9ed8\u8ba4\u7684\u8fb9\u754c\u4f4d\u7f6e\uff0c\u8fd9\u4e9b\u4f4d\u7f6e\u4e3b\u8981\u5728move*\u65b9\u6cd5\u4e2d\u9650\u5236\u7269\u4f53\u4e0d\u8981\u8d85\u51fa\u5c4f\u5e55\u8fb9\u754c<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_COORD_LOWER_LIMIT <span class=\"hljs-number\">0.05<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_COORD_UPPER_LIMIT <span class=\"hljs-number\">0.95<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_COORD_LOWER_LIMIT_X <span class=\"hljs-number\">0.05<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_COORD_UPPER_LIMIT_X <span class=\"hljs-number\">0.95<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_COORD_LOWER_LIMIT_Y <span class=\"hljs-number\">0.05<\/span>\n<span class=\"hljs-variable\">#define<\/span> FS_DEFAULT_COORD_UPPER_LIMIT_Y <span class=\"hljs-number\">0.95<\/span><\/code><\/pre>\n<h3 id=\"\u663e\u793a\u5c42fsdrawh\">\n   \u663e\u793a\u5c42\uff08<br \/>\n   <code><br \/>\n    fsDraw.h<br \/>\n   <\/code><br \/>\n   \uff09<br \/>\n  <\/h3>\n<p>\n   \u8be5\u5c42\u4e3b\u8981\u63d0\u4f9b\u4e86\u5c06\u7269\u4f53\u663e\u793a\u5728\u63a7\u5236\u53f0\u4e2d\u7684\u51fd\u6570\uff0c\u5982\u4e0b\uff1a\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cpp\">    <span class=\"hljs-comment\">\/\/\u8bbe\u7f6e\u63a7\u5236\u53f0\u5149\u6807\u4f4d\u7f6e\uff08x,y\uff09<\/span>\n    <span class=\"hljs-keyword\">void<\/span> gotoxy(<span class=\"hljs-keyword\">int<\/span> x, <span class=\"hljs-keyword\">int<\/span> y) {\n        COORD pos;\n        pos.X = x;\n        pos.Y = y;\n        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);\n    }\n    <span class=\"hljs-comment\">\/\/ \u8bbe\u7f6e\u63a7\u5236\u53f0\u989c\u8272<\/span>\n    <span class=\"hljs-keyword\">void<\/span> setcolor(WORD color) {\n        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);\n    }\n    <span class=\"hljs-comment\">\/\/ \u753b\u51fa\u5bf9\u8c61\uff0c\u5bf9\u8c61\u7684\u4f4d\u7f6e\u7531\u5176\u5de6\u4e0a\u89d2\u4f4d\u7f6e\u51b3\u5b9a\uff0c\u5bf9\u8c61\u7684\u7b26\u53f7\u7531getSymbol()\u65b9\u6cd5\u8fd4\u56de\u7684\u5b57\u7b26\u51b3\u5b9a\uff0c\u53ef\u4ee5\u901a\u8fc7<\/span>\n    <span class=\"hljs-comment\">\/\/ setSymbol()\u65b9\u6cd5\u6539\u53d8\u8fd9\u4e00\u7b26\u53f7<\/span>\n    <span class=\"hljs-keyword\">int<\/span> fsDraw(<span class=\"hljs-keyword\">const<\/span> fsObject &amp; fso) {\n        gotoxy((fso.getUpperLeftCorner()).x * FS_DEFAULT_CONSOLE_BUFFER_SCALE,\n            (fso.getUpperLeftCorner()).y * FS_DEFAULT_CONSOLE_BUFFER_SCALE);\n        setcolor(FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED);\n        <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; fso.getSymbol();\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n    }\n    <span class=\"hljs-comment\">\/\/ \u753b\u51fa\u8ba1\u5206\u7248\u5e76\u663e\u793a\u5206\u6570<\/span>\n    <span class=\"hljs-keyword\">int<\/span> fsDrawScoreBoard(<span class=\"hljs-keyword\">const<\/span> fsScoreBoard &amp; fsb) {\n        gotoxy((fsb.getUpperLeftCorner()).x * FS_DEFAULT_CONSOLE_BUFFER_SCALE,\n            (fsb.getUpperLeftCorner()).y * FS_DEFAULT_CONSOLE_BUFFER_SCALE);\n        setcolor(FOREGROUND_GREEN);\n        <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"SCORE: \"<\/span> &lt;&lt; fsb.getCurScore();\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;   \n    }<\/code><\/pre>\n<h2 id=\"\u7a0b\u5e8f\u6267\u884c\u6d41\u7a0bfstesth\">\n   \u7a0b\u5e8f\u6267\u884c\u6d41\u7a0b\uff08<br \/>\n   <code><br \/>\n    fsTest.h<br \/>\n   <\/code><br \/>\n   \uff09<br \/>\n  <\/h2>\n<p>\n   \u5728\u5305\u542b\u7684\u7a0b\u5e8f\u63d0\u4f9b\u7684\u7c7b\u6587\u4ef6\uff08<br \/>\n   <code><br \/>\n    fsObjects.h, fsDraw.h<br \/>\n   <\/code><br \/>\n   \uff09\u540e\uff0c\u7b80\u5355\u7684\u5c04\u51fb\u5c0f\u6e38\u620f\u53ef\u4ee5\u5982\u4e0b\u64cd\u4f5c\uff08\u4f8b\u5b50\u8bf7\u89c1<br \/>\n   <code><br \/>\n    fsTest.h<br \/>\n   <\/code><br \/>\n   \u4e2d\u7684<br \/>\n   <code><br \/>\n    gameTestOneBuf()<br \/>\n   <\/code><br \/>\n   \u51fd\u6570\uff09\uff1a<br \/>\n   <br \/>\n   \uff081\uff09\u521d\u59cb\u5316\u6709\u5173\u7269\u4f53\uff0c\u4e3b\u8981\u662f\u73a9\u5bb6\u98de\u673a\u548c\u654c\u65b9\u98de\u673a\u3001\u8ba1\u5206\u7248\uff0c\u4ee5\u53ca\u6709\u5173\u7684\u5b50\u5f39\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cs\">    <span class=\"hljs-comment\">\/\/ \u521d\u59cb\u5316\u73a9\u5bb6\u98de\u673a<\/span>\n    fsMyAircraft playerAircraft = fsMyAircraft(fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt;(<span class=\"hljs-number\">0.5<\/span>, <span class=\"hljs-number\">0.99<\/span>),\n        fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt;(<span class=\"hljs-number\">0.51<\/span>, <span class=\"hljs-number\">1.00<\/span>),\n        fsColor(<span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">0<\/span>));\n    <span class=\"hljs-comment\">\/\/ \u521d\u59cb\u5316\u654c\u65b9\u98de\u673a<\/span>\n    fsEnemyAircraft enemy1 = fsEnemyAircraft(fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt;(<span class=\"hljs-number\">0.5<\/span>, <span class=\"hljs-number\">0.10<\/span>),\n        fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt;(<span class=\"hljs-number\">0.51<\/span>, <span class=\"hljs-number\">0.11<\/span>),\n        fsColor(<span class=\"hljs-number\">255<\/span>, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">0<\/span>));\n    <span class=\"hljs-comment\">\/\/ \u521d\u59cb\u5316\u8ba1\u5206\u677f<\/span>\n    fsScoreBoard scoreBoard = fsScoreBoard(fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt;(<span class=\"hljs-number\">1.1<\/span>, <span class=\"hljs-number\">0.3<\/span>), fsPoint&lt;<span class=\"hljs-keyword\">double<\/span>&gt;(<span class=\"hljs-number\">1.11<\/span>, <span class=\"hljs-number\">0.31<\/span>));\n    <span class=\"hljs-comment\">\/\/ \u7b49\u5f851s\u4ee5\u4fbf\u80fd\u591f\u901a\u8fc7fire\u51fd\u6570\u6210\u529f\u521d\u59cb\u5316\u5b50\u5f39<\/span>\n    Sleep(<span class=\"hljs-number\">1000<\/span>);\n    fsBullet mybullet;\n    <span class=\"hljs-keyword\">if<\/span> (playerAircraft.fireReady()) {\n        mybullet = playerAircraft.fire();\n    }\n    fsBullet enemybullet;\n    <span class=\"hljs-keyword\">if<\/span> (enemy1.fireReady()) {\n        enemybullet = enemy1.fire();\n    }\n    <span class=\"hljs-comment\">\/\/ \u521d\u59cb\u5316\u952e\u76d8\u6309\u952e\u5b58\u50a8\u53d8\u91cf<\/span>\n    <span class=\"hljs-keyword\">char<\/span> ch = <span class=\"hljs-string\">'\/0'<\/span>;<\/code><\/pre>\n<p>\n   \uff082\uff09 \u8fdb\u5165\u6e38\u620f\u5faa\u73af\uff0c\u5728\u6e38\u620f\u5faa\u73af\u4e2d\uff0c\u9700\u8981\u4f9d\u6b21\u5b8c\u6210\u8bfb\u53d6\u6309\u952e\uff0c\u66f4\u65b0\u5404\u7269\u4f53\u72b6\u6001\uff0c\u7ed8\u51fa\u7269\u4f53\uff0c\u5b50\u5f39\u51fb\u4e2d\u5224\u65ad\u7b49\u8fc7\u7a0b\n  <\/p>\n<pre class=\"prettyprint\"><code class=\"language-c++ hljs cpp\">    <span class=\"hljs-comment\">\/\/ \u6e38\u620f\u5faa\u73af<\/span>\n    <span class=\"hljs-keyword\">while<\/span> (<span class=\"hljs-number\">1<\/span>) {\n        <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u6309\u952e<\/span>\n        <span class=\"hljs-keyword\">if<\/span> (_kbhit())\n        {\n            ch = getche();\n\n        }\n        <span class=\"hljs-comment\">\/\/ \u4f9d\u636e\u4e0d\u540c\u7684\u6309\u952e\u505a\u51fa\u5bf9\u5e94\u7684\u53cd\u5e94<\/span>\n        <span class=\"hljs-keyword\">switch<\/span> (ch)\n        {\n        <span class=\"hljs-keyword\">case<\/span> FS_MOVE_LEFT_KEY:\n            playerAircraft.moveleft();          \n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> FS_MOVE_RIGHT_KEY:\n            playerAircraft.moveright();\n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> FS_ESCAPE_KEY:\n            <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"You ended this game!\"<\/span>;\n            <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n        <span class=\"hljs-keyword\">default<\/span>:\n            <span class=\"hljs-keyword\">break<\/span>;\n        }\n        ch = <span class=\"hljs-number\">0<\/span>;\n        <span class=\"hljs-comment\">\/\/ \u66f4\u65b0\u5404\u5bf9\u8c61\u7684\u72b6\u6001<\/span>\n        <span class=\"hljs-keyword\">if<\/span> (playerAircraft.fireReady()) {\n            mybullet = playerAircraft.fire();\n        }\n        <span class=\"hljs-keyword\">if<\/span> (enemy1.fireReady()) {\n            enemybullet = enemy1.fire();\n        }\n        mybullet.updataPosition();\n        enemybullet.updataPosition();\n        enemy1.updatePosition();\n\n        <span class=\"hljs-comment\">\/\/ \u5448\u73b0\u56fe\u50cf<\/span>\n        system(<span class=\"hljs-string\">\"cls\"<\/span>);\n        fsDraw(playerAircraft);\n        fsDraw(mybullet);\n        fsDraw(enemy1);\n        fsDraw(enemybullet);\n        fsDrawScoreBoard(scoreBoard);\n        <span class=\"hljs-comment\">\/\/ \u5b50\u5f39\u51fb\u4e2d\u7684\u5224\u5b9a\uff0c\u5982\u679c\u5b50\u5f39\u51fb\u4e2d\uff0c\u5219\u5c06\u539f\u6765\u7684\u5b50\u5f39\u8bbe\u4e3a\u4e0d\u53ef\u89c1<\/span>\n        <span class=\"hljs-keyword\">if<\/span> (fsOverlap(mybullet, enemy1)) {\n            scoreBoard.addScore();\n            mybullet.setVisible(<span class=\"hljs-number\">0<\/span>);\n        }\n        <span class=\"hljs-keyword\">if<\/span> (fsOverlap(enemybullet, playerAircraft)) {\n            <span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"you are hit!\"<\/span>;\n            enemybullet.setVisible(<span class=\"hljs-number\">0<\/span>);\n            Sleep(<span class=\"hljs-number\">500<\/span>);\n        }\n        Sleep(FS_DEFAULT_FRAME_INTERVAL);\n    }<\/code><\/pre>\n<h2 id=\"\u5c0f\u7ed3\">\n   \u5c0f\u7ed3<br \/>\n  <\/h2>\n<p>\n   \u8fd9\u6b21\u5927\u4f5c\u4e1a\u5927\u6982\u82b1\u4e86\u4e09\u56db\u5929\u65f6\u95f4\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d\uff0c\u6211\u5728\u53ef\u89c6\u5316\u754c\u9762\u7684\u9009\u62e9\u4e0a\u6bd4\u8f83\u7ea0\u7ed3\uff0c\u672c\u60f3\u7528QT\uff0c\u4f46\u611f\u89c9\u5b66QT\u4e5f\u8981\u82b1\u4e0d\u5c11\u65f6\u95f4\uff0c\u800c\u4e14\u753b\u9762\u4e5f\u4e0d\u662f\u8fd9\u95e8\u8bfe\u7a0b\u7684\u91cd\u70b9\uff0c\u6240\u4ee5\u6700\u540e\u9009\u62e9\u4e86\u63a7\u5236\u53f0\u6765\u505a\u53ef\u89c6\u5316\u754c\u9762\uff0c\u867d\u7136\u6548\u679c\u4e0d\u592a\u7406\u60f3\uff0c\u4f46\u81f3\u5c11\u53ef\u4ee5\u8fd0\u884c\u3002<br \/>\n   <br \/>\n   \u5728\u5927\u4f5c\u4e1a\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4e0d\u4ec5\u8fd0\u7528\u4e86\u8bfe\u4e0a\u5b66\u4e60\u7684\u5173\u4e8e\u6a21\u677f\u548c\u7c7b\u7684\u77e5\u8bc6\uff0c\u8fd8\u81ea\u5b66\u4e86\u6709\u5173\u63a7\u5236\u53f0\u7ed8\u5236\u7684\u63a7\u5236\u7b49\u6280\u80fd\uff0c\u8ba9\u6211\u521d\u6b65\u4f53\u9a8c\u4e86\u5b8c\u6210\u4e00\u4e2a\u9879\u76ee\u662f\u4ec0\u4e48\u6837\u7684\u7ecf\u5386\uff0c\u5f88\u6709\u610f\u4e49\u3002\u5728\u5199\u8bf4\u660e\u6587\u6863\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u53d1\u73b0Word\u5728\u5904\u7406\u4ee3\u7801\u7684\u65f6\u5019\u975e\u5e38\u9ebb\u70e6\uff0c\u53c8\u5b66\u4e60\u4e86Markdown\u7684\u4f7f\u7528\uff0c\u4e5f\u7b97\u662f\u53e6\u5916\u4e00\u4e2a\u5c0f\u5c0f\u7684\u6536\u83b7\u5427\u3002<br \/>\n   <br \/>\n   \u8fd9\u6b21\u7684\u4f5c\u4e1a\u867d\u7136\u5df2\u7ecf\u53ef\u4ee5\u8fd0\u884c\uff0c\u4f46\u79bb\u771f\u6b63\u7684\u98de\u884c\u5c04\u51fb\u6e38\u620f\u8fd8\u6709\u5f88\u5927\u7684\u5dee\u8ddd\uff0c\u6bd4\u5982\uff0c\u753b\u9762\u4e0d\u591f\u7cbe\u7f8e\uff0c\u6ca1\u6709\u5347\u7ea7\u5236\u5ea6\uff0c\u6ca1\u6709\u8bbe\u7f6e\u591a\u4e2a\u654c\u673a\uff0c\u6ca1\u6709Boss\uff0c\u4e0d\u652f\u6301PVP\uff08\u73a9\u5bb6VS\u73a9\u5bb6\uff09\u7b49\uff0c\u4ee5\u540e\u6211\u8fd8\u4f1a\u518d\u62bd\u65f6\u95f4\u4e0d\u65ad\u5b8c\u5584\u3002\u503c\u5f97\u4e00\u63d0\u7684\u662f\uff0c\u672c\u6765\u60f3\u8981\u4f7f\u7528\u53cc\u7f13\u51b2\u6280\u672f\u907f\u514d\u5c4f\u5e55\u95ea\u70c1\uff0c\u4f46\u8fd9\u6837\u5c31\u96be\u4ee5\u663e\u793a\u51fa\u5b8c\u6574\u7684\u753b\u9762\uff0c\u6240\u4ee5\u6700\u540e\u6211\u6401\u7f6e\u4e86\u8fd9\u4e2a\u65b9\u6848\uff0c\u8fd9\u70b9\u53ef\u80fd\u662f\u6211\u9996\u5148\u9700\u8981\u5b8c\u5584\u7684\u5730\u65b9\u3002\n  <\/p>\n<h2 id=\"\u6700\u65b0\u4ee3\u7801\u83b7\u53d6\">\n   \u6700\u65b0\u4ee3\u7801\u83b7\u53d6<br \/>\n  <\/h2>\n<p>\n   \u8bf7\u8bbf\u95ee\u6211\u7684github\uff1a<br \/>\n   <a href=\"https:\/\/github.com\/archimekai\/flightShooting\/\"><br \/>\n    https:\/\/github.com\/archimekai\/flightShooting\/<br \/>\n   <\/a><br \/>\n   <br \/>\n   \u8fd9\u91cc\u5305\u542b\u4e86VS2015\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u53ef\u4ee5\u76f4\u63a5\u7f16\u8bd1\u8fd0\u884c\u3002\n  <\/p>\n<\/p><\/div>\n<link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/markdown_views-a5d25dd831.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/style-e504d6a974.css\" rel=\"stylesheet\"\/>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u76ee\u5f55 \u76ee\u5f55 \u7a0b\u5e8f\u7b80\u4ecb \u7a0b\u5e8f\u4eae\u70b9 \u7a0b\u5e8f\u7ed3\u6784 \u903b\u8f91\u5c42fsObjecth \u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b fsPoint Class [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-86","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-23"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684c\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"og:description\" content=\"\u76ee\u5f55 \u76ee\u5f55 \u7a0b\u5e8f\u7b80\u4ecb \u7a0b\u5e8f\u4eae\u70b9 \u7a0b\u5e8f\u7ed3\u6784 \u903b\u8f91\u5c42fsObjecth \u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b fsPoint Class [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684c\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a\/\" \/>\n<meta property=\"og:site_name\" content=\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-27T22:00:17+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"260\" \/>\n\t<meta property=\"og:image:height\" content=\"180\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin@wunen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin@wunen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/\"},\"author\":{\"name\":\"admin@wunen\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\"},\"headline\":\"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a\",\"datePublished\":\"2025-03-27T22:00:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/\"},\"wordCount\":66,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"articleSection\":[\"\u5c04\u51fb\u6e38\u620f\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/\",\"url\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/\",\"name\":\"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"isPartOf\":{\"@id\":\"https:\/\/www.wunen.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"datePublished\":\"2025-03-27T22:00:17+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"width\":260,\"height\":180},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wunen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wunen.com\/#website\",\"url\":\"https:\/\/www.wunen.com\/\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"description\":\"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9\",\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wunen.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.wunen.com\/#organization\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"url\":\"https:\/\/www.wunen.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"width\":1024,\"height\":1024,\"caption\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\"},\"image\":{\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\",\"name\":\"admin@wunen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"caption\":\"admin@wunen\"},\"sameAs\":[\"http:\/\/www.wunen.com\"],\"url\":\"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684c\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a\/","og_locale":"zh_CN","og_type":"article","og_title":"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","og_description":"\u76ee\u5f55 \u76ee\u5f55 \u7a0b\u5e8f\u7b80\u4ecb \u7a0b\u5e8f\u4eae\u70b9 \u7a0b\u5e8f\u7ed3\u6784 \u903b\u8f91\u5c42fsObjecth \u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b fsPoint Class [&hellip;]","og_url":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684c\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a\/","og_site_name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","article_published_time":"2025-03-27T22:00:17+00:00","og_image":[{"width":260,"height":180,"url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","type":"image\/jpeg"}],"author":"admin@wunen","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin@wunen","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#article","isPartOf":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/"},"author":{"name":"admin@wunen","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8"},"headline":"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a","datePublished":"2025-03-27T22:00:17+00:00","mainEntityOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/"},"wordCount":66,"commentCount":0,"publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","articleSection":["\u5c04\u51fb\u6e38\u620f"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/","url":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/","name":"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","isPartOf":{"@id":"https:\/\/www.wunen.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","datePublished":"2025-03-27T22:00:17+00:00","breadcrumb":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#primaryimage","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","width":260,"height":180},{"@type":"BreadcrumbList","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/28\/%e9%a3%9e%e8%a1%8c%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f%e7%9a%84c%e5%ae%9e%e7%8e%b0%ef%bc%9a%e4%b8%80%e6%ac%a1%e8%af%be%e7%a8%8b%e4%bd%9c%e4%b8%9a\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wunen.com\/"},{"@type":"ListItem","position":2,"name":"\u98de\u884c\u5c04\u51fb\u6e38\u620f\u7684C++\u5b9e\u73b0\uff1a\u4e00\u6b21\u8bfe\u7a0b\u4f5c\u4e1a"}]},{"@type":"WebSite","@id":"https:\/\/www.wunen.com\/#website","url":"https:\/\/www.wunen.com\/","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","description":"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9","publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wunen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.wunen.com\/#organization","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","url":"https:\/\/www.wunen.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","width":1024,"height":1024,"caption":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51"},"image":{"@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8","name":"admin@wunen","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","caption":"admin@wunen"},"sameAs":["http:\/\/www.wunen.com"],"url":"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/"}]}},"_links":{"self":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":0,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/86\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media?parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/categories?post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/tags?post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}