大家吼呀
在開始這篇文章之前,我們先來了解一下笛卡爾座標系與極座標系
首先是笛卡爾座標系,也就是我們常說的平面直角座標系,就是用我們常用的[x,y,z]來表示乙個點的位置,這個大家應該都接觸過,在這裡也不多解釋了。
然後是極座標系,這乙個大家在日常接觸到的頻率可能會少一些,極座標系就是用原點(極點),角度(θ)和長度(ρ)來確定乙個點位置的座標系,通常表示為p(ρ,θ),而在標準定義層面,極座標是由極點、極軸和極徑組成的座標系。我們可以把太陽系(俯檢視)比作乙個極座標系來讓大家更好的理解極座標三要素的概念,在太陽系中,如果我們想表示地球所在的位置,我們可以把太陽想象成極點,再已太陽為端點,畫一條經過地球的射線,也就是極軸,而地球和太陽連線所組成的線段就是極徑,極軸可以確定角度,極徑可以確定長度,地球與太陽的相對位置不就出來了?
呢麼,兩種座標係該如何轉化呢?當然要請出我們的三角函式來幫忙了!
x=ρcos(θ)
y=ρsin (θ)
再附上原理圖
眾所周知,在上圖三角形中右上角的點座標為x=對邊長度,y=臨邊長度
然後在即座標系中我們有的資料為斜邊長和角度(θ)
sin(θ)斜邊=對邊/斜邊斜邊=對邊
cos(θ)斜邊=臨邊/斜邊斜邊=臨邊
所以x=ρcos(θ);y=ρsin (θ)
不會真以為我是乙個只講枯燥的理論的人吧
接下來我們將會運用上面的理論,並把它用到遊戲中去
正片開始
首先我們來說一下基本思路
小鍵盤←↑→鍵操控小飛船
←→不是平移,是轉彎
小飛船速度為每幀0.3畫素(相當於每秒18畫素)
運用ege圖形庫
現在來梳理理論:
首先是上下左右鍵的讀取需要用到巨集定義
#define kd(vk_c) (getasynckeystate(vk_c)&0x8000?1:0)if(
kd(vk_left))if
(kd(vk_right))if
(kd(vk_up))if
(kd(vk_down)
)
//真實資料詳見winuser.h的190到350行
然後是移動**
if(左.按下)角度-0.5
if(右.按下)角度+0.5
這裡要注意,當你移動的時候,原點不是乙隻一樣的,是隨著你上一次移動的位置而改變的
if(上.按下) x+=cos(角度)*0.3;y+=sin(角度)*0.3
理論存在,實踐開始:
#include
#include
#include
#define kd(vk_c) (getasynckeystate(vk_c)&0x8000?1:0)
using
namespace std;
struct fo
p1;int
main()
p1.x=
100;
p1.y=
100;
showwindow
(kzt,0)
;for(;
is_run()
;delay_fps
(360))
if(kd(vk_right)
)line
(p1.x+
cos(p1.jiaodu)*-
5,p1.y+
sin(p1.jiaodu)*-
5,p1.x+
cos(p1.jiaodu)*5
,p1.y+
sin(p1.jiaodu)*5
);if(
kd(vk_up)
)outtextxy
(p1.x-
5,p1.y-40,
"↓這是飛船");
}setfont(20
,0,"黑體");
outtextxy
(260
,130
,"按q退出");
sleep(10
);while(1
)if(kd
('q'))
break
;closegraph()
;showwindow
(kzt,1)
;return0;
}
啊對就是這麼簡單
是不是躍躍欲試想要建立自己的有遊戲了呢?
竟然是小飛機,呢當然要加乙個發射子彈的功能了
再稍微加一點美工
加一點敵人
好了遊戲出來了!
空戰領域v3.0
網盤連線提取碼: nkln
飛船向滑鼠移動,按f發射子彈,按d開啟護盾(每一次開啟會減少護盾能量值,撿起地上的護盾可以增加能量值),愛心可以補血,對,就是這樣。
好了這一期就到這裡了,還不點贊支援一下?
笛卡爾 關於笛卡爾
陪孩子看書看到笛卡爾,突然想到了笛卡爾積以及cross join等等,無法忽視的數學之美。關於笛卡爾發明座標系還有這樣乙個故事 有一天,笛卡爾 1596 1650,法國哲學家 數學家 物理學家 生病臥床,但他頭腦一直沒有休息,在反覆思考乙個問題 幾何圖形是直觀的,而代數方程則比較抽象,能不能用幾何圖...
笛卡爾 笛卡爾 解析幾何之父
勒內 笛卡爾,1596年3月31日生於法國安德爾 羅亞爾省的圖賴訥拉海,1650年2月11日逝世於瑞典斯德哥爾摩,是法國著名的哲學家 數學家 物理學家。他是西方近代哲學奠基人之一。他對現代數學的發展做出了重要的貢獻,因將幾何座標體系公式化而被認為是解析幾何之父。他還是西方現代哲學思想的奠基人,是近代...
笛卡爾 變數
笛卡爾的主要數學成果集中在他的 幾何學 中。他提出必須把幾何與代數的優點結合起來,建立一種 真正的數學 笛卡爾的思想核心是 把幾何學的問題歸結成代數形式的問題,用代數學的方法進行計算 證明,從而達到最終解決幾何問題的目的。依照這種思想他創立了我們現在稱之為的 解析幾何學 1637年,笛卡爾發表了 幾...