2d物理引擎01

我一直想做一個游戲,但一直感覺自己水平不夠

想了想覺得不去做的話就永遠做不出來

所以有了這個博文

01

我需要一個東西來顯示,很顯然h5中canvas是很好的選擇

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><script src="js/index.js" type="text/javascript" charset="utf-8"></script><script src="js/map.js" type="text/javascript" charset="utf-8"></script><script src="js/obj.js" type="text/javascript" charset="utf-8"></script><script src="js/碰撞.js" type="text/javascript" charset="utf-8"></script><title></title></head><body><canvas style="border: 1px solid lightseagreen;" onclick="單擊()"  onkeydown="input_key()" id="id-canvas" width="800" height="600"></canvas></body>
</html>

02

一個引擎到底該怎么寫?我不知道

需要哪些功能?我也不知道

但我覺得首先我需要能在畫板上畫點什么

我需要一個主角

function 誕生(color){return {
x:100,y:100,
r:20,m:20,
Vx:Math.random()*10*隨機取負(),Vy:Math.random()*10*隨機取負(), //v=v+at v+=a v+=F/m
Fx:0,Fy:0, //F=ma a=F/m
g:3,
color:color,
}}
function 隨機取負(){
if(Math.random()>0.5)
return(-1)
return(1)
}

我想了想這個主角會有這樣的一些屬性

x,y  自身坐標

r   它的大小,因為他是圓的所以是半徑

m   它的質量

Vx,Vy  它的速度,根據我可憐的高中物理知識將速度分解成x和y兩個分量

g    它受到的引力,按理來說引力應該是大家共享的,但我為了以后可能會有的漂浮之類的效果給了每一個對象一個g

color ?  它的外表

好了,一個主角構建成功

現在是要把它畫出來

cav=document.getElementById("id-canvas")
ctx=cav.getContext('2d')、

e=誕生('blue')

ctx.fillStyle=e.color

ctx.arc(e.x,e.y,e.r,0,2*Math.PI)

ctx.fill()

?

嗯,畫出來了,感覺我的游戲可能成功了一半

轉載于:https://www.cnblogs.com/szpq/p/8081005.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370154.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370154.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370154.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python結課設計力學方面_我對力學教案的評價

這是來自某教學網站的高一物理力學教案&#xff1a;[高一物理教案1.1.1]第一章 力1&#xff0e;1 力一、教學目標1&#xff0e;知識目標⑴知道力是物體對物體的作用&#xff0c;力不能脫離物體而存在&#xff1b;能正確找出受力物體和施力物體。⑵知道力是有方向的量&#xff…

Liferay Model Hints

這篇文章主要介紹如何通過model hint 來修改liferay builder service生成數據庫表中默認字段的長度。 1.什么是Model Hints? 它是對liferay builder service生成的model類的基本提示. 2. 它在什么地方被定義的&#xff1f; portlet-model-hints.xml 3. 文件位置&#xff1f; /…

瀏覽器書簽備份管理

1、火狐瀏覽器備份導出HTML文件&#xff1a; CtrlJ 書簽 - 導入/導出 2、谷歌瀏覽器&#xff1a; 設置中 導入書簽 轉載于:https://www.cnblogs.com/AmbiguousMiao/p/8084721.html

選擇您的收藏庫

這真的是您應該煩惱的嗎&#xff1f; java.util.ArrayList和java.util.HashMap從根本上有問題嗎&#xff1f; 對于大多數源代碼&#xff0c;答案是–不&#xff1b; 這些實現完全可以。 但是&#xff0c;一如既往&#xff0c;細節決定成敗。 并存在情況下&#xff0c;當是內置…

里公式后面標號怎么對齊_你若會用Word里F4鍵,又何須加班到半夜?

F4鍵在Word里面表示重復上一個操作&#xff0c;但對于這個快捷鍵&#xff0c;你真的會操作嗎&#xff1f;本期與大家分享這個神奇的F4鍵&#xff0c;助你高效工作。1、批量復制文本在一般情況下&#xff0c;我們是用CtrlC復制內容&#xff0c;CtrlV粘貼內容&#xff0c;但遇到特…

全方位分析web前端如何進行性能優化

前言&#xff1a; 最近剛剛完成項目&#xff0c;空閑一段時間&#xff0c;想起之前有被問起怎么對前端進行性能優化&#xff0c;自己也是腦中零零散散的總不成體系&#xff0c;現特來總結&#xff0c;歡迎補充指教。 1、整體資源 &#xff08;1&#xff09;js、css源碼壓縮 &a…

DshanMCU-R128s2 SDK 架構與目錄結構

R128 S2 是全志提供的一款 M33(ARM)C906(RISCV-64)HIFI5(Xtensa) 三核異構 SoC&#xff0c;同時芯片內部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。 本文檔作為 R128 FreeRTOS SDK 開發指南&#xff0c;旨在幫助軟件開發工程師、技術支持工程師快速上手&am…

數據導出

數據導出和數據導入剛好是相反的&#xff0c;把邏輯反過來就可以了。 源碼&#xff1a;https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/COM/DataToOut.aspx 效果&#xff1a; 然后勾選需要導出的數據&#xff0c;生成Excel 部分前臺&#xff1a;…

c語言清空輸入緩沖區函數,c語言:C語言清空輸入緩沖區在標準輸入(stdin)情況 -電腦資料...

C語言清空輸入緩沖區在標準輸入(stdin)情況下的使用程序1&#xff1a;//功能&#xff1a;先輸入一個數字&#xff0c;再輸入一個字符&#xff0c;輸出hello bit#include int main(){int num 0;char ch ;scanf("%d", &num);scanf("%c", &ch);pri…

Spring MVC 3:上傳多個文件

只是在辦公室又漫長的一天&#xff0c;數據庫不可用&#xff0c;一個團隊成員現在滯后一周。 因此&#xff0c;我們必須作為一個團隊來交付它。 在Spring3&#xff0c;它看起來很直接上傳文件。 但是&#xff0c;從jsp文件上載多個文件幾乎沒有幫助。 上載多個文件需要完成三件…

spring 事務隔離級別和傳播行為_Spring事務傳播性與隔離性實戰

一、事務傳播性1.1 什么是事務的傳播性事務的傳播性一般在事務嵌套時候使用&#xff0c;比如在事務A里面調用了另外一個使用事務的方法&#xff0c;那么這倆個事務是各自作為獨立的事務執行提交&#xff0c;還是內層的事務合并到外層的事務一塊提交那&#xff0c;這就是事務傳播…

前端為什么非要動靜分離 說一下CDN托管的意義

大型Web應用對速度的追求并沒有止步于僅僅利用瀏覽器緩存&#xff0c;因為瀏覽器緩存始終只是為了提升二次訪問的速度&#xff0c;對于首次訪問的加速&#xff0c;我們需要從網絡層面進行優化&#xff0c;最常見的手段就是CDN&#xff08;Content Delivery Network&#xff0c;…

unity語音聊天之 www.GetAudioClip

最近在開發語音聊天功能,游戲需要跨平臺安卓與ios&#xff0c;上傳本地錄制的wav文件至服務器后&#xff0c;需要根據服務器返回的地址進行語音文件的下載并進行播放。 這里通過使用www進行下載并播放 其中在ios播放時卻不行了&#xff0c;查詢官方文檔后發現&#xff0c;ios必…

輕談BFC

BFC 定義 CSS2.1的定義 Block formatting contexts 9.4.1 Block formatting contexts Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and table-captions) that are not block boxes, and block boxes with overflow other …

Java中的Selenium / WebDriver示例

幾年前&#xff0c;我正在忙于一些工作&#xff0c;客戶希望了解如何解決現實世界中的問題。 他們要求我自動化woot.com網站上的某些任務。 他們的任務是訪問各個網站&#xff0c;并閱讀當天商品的名稱和價格。 我寫了一些Selenium代碼&#xff0c;以為可以將其張貼在這里&am…

c語言中怎樣實現空格的替換,C語言實現去除字符串中空格的簡單實例

在網上看了些去除空格的代碼,覺得都不是很簡潔,就自己寫代碼實現它本著高效率,不使用額外存儲空間的想法實現該功能去除空格一共有三種&#xff1a;1、去除全部空格&#xff1b;2、一種是去除左邊空格&#xff1b;3、去除右邊空格想去除左右兩邊空格&#xff0c;只要先去除左邊…

python消息隊列中間件_python-RabbtiMQ消息隊列

1.RabbitMQ簡介AMQP&#xff0c;即Advanced Message Queuing Protocol&#xff0c;高級消息隊列協議&#xff0c;是應用層協議的一個開放標準&#xff0c;為面向消息的中間件設計。消息中間件主要用于組件之間的解耦&#xff0c;消息的發送者無需知道消息使用者的存在&#xff…

CSS position(定位)屬性

關于CSS position&#xff0c;來自MDN的描述&#xff1a; CSS position屬性用于指定一個元素在文檔中的定位方式。top、right、bottom、left 屬性則決定了該元素的最終位置。 然后來看看什么是文檔流(normal flow)&#xff0c;下面是 www.w3.org 的描述&#xff1a; Normal flo…

tomcat配置文件server.xml詳解

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 目錄(?)[] 元素名 屬性 解釋 server port 指定一個端口&#xff0c;這個端口負責監聽關閉tomcat 的請求 shutdown 指定向端口發送的命令字符串 service name 指定service 的名字 Con…

均值,方差,協方差,協方差矩陣,特征值,特征向量

大牛博客&#xff0c;收藏一下 http://blog.csdn.net/yangleo1987/article/details/52845912轉載于:https://www.cnblogs.com/gaohai/p/8086626.html