Style 對象
Style 對象表示一個個別的樣式聲明。
訪問 Style 對象
Style 對象可以從文檔的頭部區域訪問,或者從指定的 HTML 元素訪問。
從文檔的頭部區域訪問 style 對象:
var x = document.getElementsByTagName("STYLE");嘗試一下
訪問一個指定元素的 style 對象:
var x = document.getElementById("myH1").style;
創建 Style 對象
您可以使用 document.createElement() 方法來創建 <style> 元素:
var x = document.createElement("STYLE");嘗試一下
您也可以設置一個已有元素的 style 屬性:
document.getElementById("myH1").style.color = "red";
Style 對象屬性
"CSS" 列表示該屬性是在哪一個 CSS 版本中定義的(CSS1、CSS2 或 CSS3)。
屬性 | 描述 | CSS |
---|---|---|
alignContent | 設置或返回當靈活容器內的各項沒有占用所有可用的空間時各項之間的對齊方式(水平)。 | 3 |
alignItems | 設置或返回靈活容器內的各項的對齊方式。 | 3 |
alignSelf | 設置或返回靈活容器內被選中項目的對齊方式。 | 3 |
animation | 是下面除了 animationPlayState 屬性之外的其他屬性的速記屬性。 | 3 |
animationDelay | 設置或返回動畫何時開始。 | 3 |
animationDirection | 設置或返回是否循環交替反向播放動畫。 | 3 |
animationDuration | 設置或返回動畫完成需花費的秒數或毫秒數。 | 3 |
animationFillMode | 設置或返回當動畫不播放時(當動畫完成時,或當動畫有一個延遲未開始播放時),要應用到元素的樣式。 | 3 |
animationIterationCount | 設置或返回動畫的播放次數。 | 3 |
animationName | 設置或返回關鍵幀 @keyframes 動畫的名稱。 | 3 |
animationTimingFunction | 設置或返回動畫的速度曲線。 | 3 |
animationPlayState | 設置或返回動畫是運行的還是暫停的。 | 3 |
background | 設置或返回在一個聲明中的所有背景屬性。 | 1 |
backgroundAttachment | 設置或返回背景圖像是否固定或隨頁面滾動。 | 1 |
backgroundColor | 設置或返回元素的背景色。 | 1 |
backgroundImage | 設置或返回元素的背景圖像。 | 1 |
backgroundPosition | 設置或返回的背景圖像的起始位置。 | 1 |
backgroundRepeat | 設置或返回如何重復背景圖像。 | 1 |
backgroundClip | 設置或返回背景的繪制區域。 | 3 |
backgroundOrigin | 設置或返回背景圖像的定位區域。 | 3 |
backgroundSize | 設置或返回背景圖像的大小。 | 3 |
backfaceVisibility | 設置或返回當一個元素背對屏幕時是否可見。 | 3 |
border | 設置或返回在一個聲明中的 borderWidth、borderStyle 和 borderColor。 | 1 |
borderBottom | 設置或返回在一個聲明中的所有 borderBottom* 屬性。 | 1 |
borderBottomColor | 設置或返回下邊框的顏色。 | 1 |
borderBottomLeftRadius | 設置或返回左下角邊框的形狀。 | 3 |
borderBottomRightRadius | 設置或返回右下角邊框的形狀。 | 3 |
borderBottomStyle | 設置或返回下邊框的樣式。 | 1 |
borderBottomWidth | 設置或返回下邊框的寬度。 | 1 |
borderCollapse | 設置或返回表格的邊框是否被折疊為一個單一的邊框。 | 2 |
borderColor | 設置或返回元素邊框的顏色(最多可以有四個值)。 | 1 |
borderImage | 一個用于設置或返回所有的 borderImage* 屬性的速記屬性。 | 3 |
borderImageOutset | 設置或返回邊框圖像區域超出邊界框的量。 | 3 |
borderImageRepeat | 設置或返回圖像邊框是重復拼接圖塊還是延伸圖塊。 | 3 |
borderImageSlice | 設置或返回圖像邊框的向內偏移。 | 3 |
borderImageSource | 設置或返回要作為邊框使用的圖像。 | 3 |
borderImageWidth | 設置或返回圖像邊框的寬度。 | 3 |
borderLeft | 設置或返回在一個聲明中的所有 borderLeft* 屬性。 | 1 |
borderLeftColor | 設置或返回左邊框的顏色。 | 1 |
borderLeftStyle | 設置或返回左邊框的樣式。 | 1 |
borderLeftWidth | 設置或返回左邊框的寬度。 | 1 |
borderRadius | 一個用于設置或返回四個 border*Radius 屬性的速記屬性。 | 3 |
borderRight | 設置或返回在一個聲明中的所有 borderRight* 屬性。 | 1 |
borderRightColor | 設置或返回右邊框的顏色。 | 1 |
borderRightStyle | 設置或返回右邊框的樣式。 | 1 |
borderRightWidth | 設置或返回右邊框的寬度。 | 1 |
borderSpacing | 設置或返回表格中單元格之間的距離。 | 2 |
borderStyle | 設置或返回元素邊框的樣式(最多可以有四個值)。 | 1 |
borderTop | 設置或返回在一個聲明中的所有 borderTop* 屬性。 | 1 |
borderTopColor | 設置或返回上邊框的顏色。 | 1 |
borderTopLeftRadius | 設置或返回左上角邊框的形狀。 | 3 |
borderTopRightRadius | 設置或返回右上角邊框的形狀。 | 3 |
borderTopStyle | 設置或返回上邊框的樣式。 | 1 |
borderTopWidth | 設置或返回上邊框的寬度。 | 1 |
borderWidth | 設置或返回元素邊框的寬度(最多可以有四個值)。 | 1 |
bottom | 設置或返回定位元素的底部位置。 | 2 |
boxDecorationBreak | 設置或返回分頁處元素的背景和邊框行為,或者換行處內聯元素的背景和邊框行為。 | 3 |
boxShadow | 設置或返回元素的下拉陰影。 | 3 |
boxSizing | 允許您以特定的方式定義匹配某個區域的特定元素。 | 3 |
captionSide | 設置或返回表格標題的位置。 | 2 |
clear | 設置或返回元素相對浮動對象的位置。 | 1 |
clip | 設置或返回定位元素的可見部分。 | 2 |
color | 設置或返回文本的顏色。 | 1 |
columnCount | 設置或返回元素應該被劃分的列數。 | 3 |
columnFill | 設置或返回如何填充列。 | 3 |
columnGap | 設置或返回列之間的間隔。 | 3 |
columnRule | 一個用于設置或返回所有的 columnRule* 屬性的速記屬性。 | 3 |
columnRuleColor | 設置或返回列之間的顏色規則。 | 3 |
columnRuleStyle | 設置或返回列之間的樣式規則。 | 3 |
columnRuleWidth | 設置或返回列之間的寬度規則。 | 3 |
columns | 一個用于設置或返回 columnWidth 和 columnCount 的速記屬性。 | 3 |
columnSpan | 設置或返回一個元素應橫跨多少列。 | 3 |
columnWidth | 設置或返回列的寬度。 | 3 |
content | 與 :before 和 :after 偽元素一起使用,來插入生成的內容。 | 2 |
counterIncrement | 增加一個或多個計數器。 | 2 |
counterReset | 創建或重置一個或多個計數器。 | 2 |
cursor | 設置或返回鼠標指針顯示的光標類型。 | 2 |
direction | 設置或返回文本的方向。 | 2 |
display | 設置或返回元素的顯示類型。 | 1 |
emptyCells | 設置或返回是否顯示表格中的空單元格的邊框和背景。 | 2 |
filter | 設置或返回圖片濾鏡(可視效果,如:高斯模糊與飽和度) | 3 |
flex | 相對于同一容器其他靈活的項目,設置或返回項目的長度。 | 3 |
flexBasis | 設置或靈活項目的初始長度。 | 3 |
flexDirection | 設置或返回靈活項目的方向。 | 3 |
flexFlow | 是 flexDirection 和 flexWrap 屬性的速記屬性。 | 3 |
flexGrow | 設置或返回項目將相對于同一容器內其他靈活的項目進行擴展的量。 | 3 |
flexShrink | 設置或返回項目將相對于同一容器內其他靈活的項目進行收縮的量。 | 3 |
flexWrap | 設置或返回靈活項目是否拆行或拆列。 | 3 |
cssFloat | 設置或返回元素的水平對齊方式。 | 1 |
font | 設置或返回一個聲明中的 fontStyle、fontVariant、fontWeight、fontSize、lineHeight 和 fontFamily。 | 1 |
fontFamily | 設置或返回文本的字體。 | 1 |
fontSize | 設置或返回文本的字體尺寸。 | 1 |
fontStyle | 設置或返回字體樣式是否是 normal(正常的)、italic(斜體)或 oblique(傾斜的)。 | 1 |
fontVariant | 設置或返回是否以小型大寫字母顯示字體。 | 1 |
fontWeight | 設置或返回字體的粗細。 | 1 |
fontSizeAdjust | 當使用備用字體時,確保文本的可讀性。 | 3 |
fontStretch | 從字體庫中選擇一種正常的、濃縮的或擴大的字體。 | 3 |
hangingPunctuation | 規定一個標點符號是否可以放置在線框外。 | 3 |
height | 設置或返回元素的高度。 | 1 |
hyphens | 設置如何拆分單詞來提高段落布局。 | 3 |
icon | 向作者提供為一個帶有等價于圖標的元素定義樣式的功能。 | 3 |
imageOrientation | 規定一個用戶代理應用到圖像上的順時針方向的旋轉。 | 3 |
justifyContent | 設置或返回當靈活容器內的各項沒有占用所有可用的空間時各項之間的對齊方式(垂直)。 | 3 |
left | 設置或返回定位元素的左部位置。 | 2 |
letterSpacing | 設置或返回文本中字符之間的空間。 | 1 |
lineHeight | 設置或返回在文本中行之間的距離。 | 1 |
listStyle | 設置或返回一個聲明中的 listStyleImage、listStylePosition 和 listStyleType。 | 1 |
listStyleImage | 設置或返回作為列表項標記的圖像。 | 1 |
listStylePosition | 設置或返回列表項標記的位置。 | 1 |
listStyleType | 設置或返回列表項標記的類型。 | 1 |
margin | 設置或返回元素的外邊距(最多可以有四個值)。 | 1 |
marginBottom | 設置或返回元素的的下外邊距。 | 1 |
marginLeft | 設置或返回元素的左外邊距。 | 1 |
marginRight | 設置或返回元素的右外邊距。 | 1 |
marginTop | 設置或返回元素的上外邊距。 | 1 |
maxHeight | 設置或返回元素的最大高度。 | 2 |
maxWidth | 設置或返回元素的最大寬度。 | 2 |
minHeight | 設置或返回元素的最小高度。 | 2 |
minWidth | 設置或返回元素的最小寬度。 | 2 |
navDown | 設置或返回當使用向下箭頭導航鍵時要導航到哪里。 | 3 |
navIndex | 設置或返回元素的顯示順序。 | 3 |
navLeft | 設置或返回當使用向左箭頭導航鍵時要導航到哪里。 | 3 |
navRight | 設置或返回當使用向右箭頭導航鍵時要導航到哪里。 | 3 |
navUp | 設置或返回當使用向上箭頭導航鍵時要導航到哪里。 | 3 |
opacity | 設置或返回元素的不透明度。 | 3 |
order | 設置或返回一個靈活的項目相對于同一容器內其他靈活項目的順序。 | 3 |
orphans | 設置或返回當元素內有分頁時,必須在頁面底部預留的最小行數。 | 2 |
outline | 設置或返回在一個聲明中的所有 outline 屬性。 | 2 |
outlineColor | 設置或返回一個元素周圍的輪廓顏色。 | 2 |
outlineOffset | 對輪廓進行偏移,并在邊框邊緣進行繪制。 | 3 |
outlineStyle | 設置或返回一個元素周圍的輪廓樣式。 | 2 |
outlineWidth | 設置或返回一個元素周圍的輪廓寬度。 | 2 |
overflow | 設置或返回如何處理呈現在元素框外面的內容。 | 2 |
overflowX | 規定如果內容溢出元素的內容區域,是否對內容的左/右邊緣進行裁剪。 | 3 |
overflowY | 規定如果內容溢出元素的內容區域,是否對內容的上/下邊緣進行裁剪。 | 3 |
padding | 設置或返回元素的內邊距(最多可以有四個值)。 | 1 |
paddingBottom | 設置或返回元素的下內邊距。 | 1 |
paddingLeft | 設置或返回元素的左內邊距。 | 1 |
paddingRight | 設置或返回元素的右內邊距。 | 1 |
paddingTop | 設置或返回元素的上內邊距。 | 1 |
pageBreakAfter | 設置或返回元素后的分頁行為。 | 2 |
pageBreakBefore | 設置或返回元素前的分頁行為。 | 2 |
pageBreakInside | 設置或返回元素內的分頁行為。 | 2 |
perspective | 設置或返回 3D 元素被查看的視角。 | 3 |
perspectiveOrigin | 設置或返回 3D 元素的底部位置。 | 3 |
position | 設置或返回用于元素定位方法的類型(static、relative、absolute 或 fixed)。 | 2 |
quotes | 設置或返回嵌入引用的引號類型。 | 2 |
resize | 設置或返回是否可由用戶調整元素的尺寸大小。 | 3 |
right | 設置或返回定位元素的右部位置。 | 2 |
tableLayout | 設置或返回表格單元格、行、列的布局方式。 | 2 |
tabSize | 設置或返回制表符(tab)字符的長度。 | 3 |
textAlign | 設置或返回文本的水平對齊方式。 | 1 |
textAlignLast | 設置或返回當 text-align 屬性設置為 "justify" 時,如何對齊一個強制換行符前的最后一行。 | 3 |
textDecoration | 設置或返回文本的修飾。 | 1 |
textDecorationColor | 設置或返回文本修飾的顏色。 | 3 |
textDecorationLine | 設置或返回文本修飾要使用的線條類型。 | 3 |
textDecorationStyle | 設置或返回文本修飾中的線條樣式。 | 3 |
textIndent | 設置或返回文本第一行的縮進。 | 1 |
textJustify | 設置或返回當 text-align 屬性設置為 "justify" 時,要使用的對齊方法。 | 3 |
textOverflow | 設置或返回當文本溢出包含它的元素,應該發生什么。 | 3 |
textShadow | 設置或返回文本的陰影效果。 | 3 |
textTransform | 設置或返回文本的大小寫。 | 1 |
top | 設置或返回定位元素的頂部位置。 | 2 |
transform | 向元素應用 2D 或 3D 轉換。 | 3 |
transformOrigin | 設置或返回被轉換元素的位置。 | 3 |
transformStyle | 設置或返回被嵌套的元素如何呈現在 3D 空間中。 | 3 |
transition | 一個用于設置或返回四個過渡屬性的速記屬性。 | 3 |
transitionProperty | 應用過渡效果的 CSS 屬性的名稱。 | 3 |
transitionDuration | 設置或返回完成過渡效果需要花費的時間(以秒或毫秒計)。 | 3 |
transitionTimingFunction | 設置或返回過渡效果的速度曲線。 | 3 |
transitionDelay | 設置或返回過渡效果何時開始。 | 3 |
unicodeBidi | 設置或返回文本是否被重寫,以便在同一文檔中支持多種語言。 | 2 |
verticalAlign | 設置或返回元素中內容的垂直對齊方式。 | 1 |
visibility | 設置或返回元素是否應該是可見的。 | 2 |
whiteSpace | 設置或返回如何處理文本中的制表符、換行符和空格符。 | 1 |
width | 設置或返回元素的寬度。 | 1 |
wordBreak | 設置或返回非 CJK 語言的換行規則。 | 3 |
wordSpacing | 設置或返回文本中單詞之間的空間。 | 1 |
wordWrap | 允許長單詞或 URL 地址換行到下一行。 | 3 |
widows | 設置或返回一個元素必須在頁面頂部的可見行的最小數量。 | 2 |
zIndex | 設置或返回定位元素的堆疊順序。 | 2 |
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
三部分 附錄(因為暫時不支持插入超鏈接所以部分內容無法顯示)
附錄一 DIV命名規范
附錄二 CSS精靈
a { display:block; width:200px; height:65px; line-height:65px; /*定義狀態*/ text-indent:-2015px; /*隱藏文字*/ background-image:url(button.png); /*定義背景圖片*/ background-position:0 0; /*定義鏈接的普通狀態,此時圖像顯示的是頂上的部分*/ } a:hover { background-position:0 -66px; /*定義鏈接的滑過狀態,此時顯示的為中間部分,向下取負值*/ } a:active { background-position:0 -132px; /*定 義鏈接的普通狀態,此時顯示的是底部的部分,向下取負值*/ }
附錄三 一些tips解決方案
頁面優化實踐
寫DIV+CSS 的一些常識
常用代碼片段
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td { margin:0; padding:0; } body { background:#fff; color:#555; font-size:14px; font-family: Verdana, Arial, Helvetica, sans-serif; } td, th, caption { font-size:14px; } h1, h2, h3, h4, h5, h6 { font-weight:normal; font-size:100%; } address, caption, cite, code, dfn, em, strong, th, var { font-style:normal; font-weight:normal; } a { color:#555; text-decoration:none; } a:hover { text-decoration:underline; } img { border:none; } ol,ul,li { list-style:none; } input, textarea, select, button { font:14px Verdana,Helvetica,Arial,sans-serif; } table { border-collapse:collapse; } html { overflow-y: scroll; } .clearfix:after { content: "."; display: block; height:0; clear:both; visibility: hidden; } .clearfix { *zoom:1; }
<meta name=”viewport” content=”width=320,target-densitydpi=dpi_value,initial-scale=1, user-scalable=no”/>
table-layout: fixed; word-break: break-all;;border-collapse: collapse
<div id=”abc” style=”display:table;text-align:center;width:100%;height:100%;”> <span style=”background:#f00; display:table-cell; vertical-align:middle;”> <input type=”button” value=”item1″ /> </span> </div>
filter:alpha(opacity=50); /*1-100*/ -moz-opacity:0.5; /*0-1.0*/ -khtml-opacity:0.5; /*0-1.0*/ opacity:0.5; /*0-1.0*/
white-space:nowrap; text-overflow:ellipsis; overflow:hidden;
.fix{zoom:1;} .fix:after{ display:block; content:'clear'; clear:both; line-height:0; visibility:hidden; }
一些總結
一些概念
學習從來不是一個人的事情,要有個相互監督的伙伴,想要學習或交流前端問題的小伙伴可以私信“學習”小明加群獲取2019web前端最新入門資料,一起學習,一起成長!
有些人玩游戲,是為了尋求刺激;有些人玩游戲,是為了休閑安靜地打發時間。二者的感受如何才能兼得,近日,蘇格蘭愛丁堡的一位開發者 Anslo 潛心開發了 16 個月,發布了一款名為 《Slow Roads》(slowroads.io)的免費、輕松的駕駛游戲,可以讓玩家在電腦上體驗《速度與激情》的感覺,還能欣賞由程序自動生成的優美風景。此外,這款游戲可以直接在瀏覽器中運行,無需登錄或者安裝,對于玩家而言,即開即玩。
玩法
《Slow Roads》一經推出之后,便受到了不少玩家的關注和試玩。和傳統駕駛類游戲有所不同,這款游戲在玩法和技術實現上有著巨大的差異。
首先,在游戲玩法上,它沒有撞車、沒有失敗更沒有輸贏。隨著汽車的行駛,道路會一直在延伸,風景秀麗的景觀在身邊飛馳,最為值得關注無論是春夏秋冬,還是白天、傍晚、黑夜,亦或是森林、沙漠、環山,場景都可以一鍵“無縫切換”。
另外,駕駛的車也可以切換為轎車、長途汽車、自行車。
如果你的方向盤偏離了道路,也可以按一下「R」鍵將車重新定位到快速道上,甚至道路也是可以選擇的。當然,如果你愿意,還可以駕駛越野車或者體驗一下水下行駛的感覺。
當然,玩累了,還可以開啟自動駕駛模式。
同時,這款游戲的操作也非常簡單,W 鍵或向上箭頭是加速,S 鍵或向下箭頭是剎車。A 鍵和 D 鍵(或左右箭頭)控制轉向;玩家也可以通過按住 Shift 或雙擊 W 鍵來升級汽車;C 鍵可改變攝像機角度,Q 鍵和 E 鍵在可用的天氣和照明條件下循環。如果你不喜歡鍵盤控制,也可以改用基于鼠標的轉向。
在技術實現上,與使用傳統游戲引擎開發的游戲不同,Anslo 表示,《Slow Roads》使用了 three.js 的 3D JavaScript 庫構建,可直接在 Chrome、Firefox、Safari 和 Edge 瀏覽器中運行。與此同時,上述的場景切換都是由程序自動生成,通過技術實現,可以動態生成無限地圖和處理事務。這是一個相當復雜且有趣的技術演示。用開發者 Anslo 自己的話來形容,「該游戲的實驗正在挑戰瀏覽器游戲的合理邊界」。
接下來,我們不妨一起來看一下具體的技術原理。
技術實現
事實上,這一款游戲的制作不僅需要深厚的開發功底,也需要有設計、物理學等知識儲備。在《Slow Roads》中,作者首先通過生成一個高度圖,采用了類似于 Perlin 噪聲的算法,并進行了修改優化,從而實現更真實的山丘景觀。
繼而使用一個 npm 包 Alea(https://www.npmjs.com/package/alea)用作 PRNG(偽隨機數生成器,Preudo Random Number Generator),用于復制和粘貼實現。
當完成第一步開發之后,第二步便是進行車子行駛的道路規劃。Anslo 選擇采用了以下步驟:
選擇地圖中一個不太陡峭、不太深的地方,作為行駛的起點。同時,這也是道路中線的第一個點。
進而選擇一個方向,并測量周圍的高度圖,以此評估橫向和縱向的坡度。
然后,道路中線最好是能向坡度下滑的方向移動 10 米。點被編碼在一個雙向鏈表中,每個點都使用元數據(如坡度、道路寬度和曲率)注釋。
上面這個過程是會一直重復的(以從車輛位置開始的 15 公里的地平線為界),但注意行駛的車道不要有自相交的情況,這也是游戲中道路規劃最難的地方。
中線點的高度用一個 9 個點的窗口進行追溯平滑,以避免海拔的突然急劇變化。
在一個較短的地平線上,大概 10 米的中線被用二次貝塞爾曲線以 1 米的分辨率進行平滑點的注釋。
當道路規劃完成之后,第三步便是渲染環境。這里可以使用一個 5x5 的大粗網格(這款游戲中,作者采用的是 10 米的分辨率和 1 公里的最大視距)來渲染大型場景。這被稱之為“遠網格”。
在靠近道路的地方,是一個由更細的 5x5 網格組成的,每個網格拼接到一起,沿著道路中線行進,形成一個連續的 "走廊"。這就是 "近網格",從車輛的位置向前生成一個固定的水平線。
同時,遠處網格現在重疊的頂點被粗略地 "隱藏 "起來,把它們沉到幾米以下。
然后離道路中線接近的地方,在道路的高度和底層環境的高度之間插值,以實現無縫過渡。
除了以上,Anslo 還采用了一個額外的 3x3 網格,渲染離道路中線更近的地方,優化細節,實現更精細的體驗。
在圖形細節中,這名開發者在游戲中的地面紋理使用世界坐標的 UV,并與 perlin 噪聲混合,以改變草的顏色。另外,在樹葉地圖下應用了一個暗色的紋理,用來產生樹影的感官。
正如上文所述,這款游戲還采用了一些物理學的基礎知識,如汽車每個輪子的動力學都是獨立計算的,使用圍繞重力、表面摩擦力和地面法線的常規運動學方程式。
最后
目前這款游戲已經基本完成,不過,Anslo 認為也還有不少需要優化的地方,后續可能會改善天氣效果、更多的車輛類型和控制器支持。
作為一款沒有使用如 Unity、UE5 等游戲引擎,而僅是使用了 JavaScript 實現的游戲而言,它的輕量級獲得了不少好評:
火星地圖很有趣。另外,我發現汽車在倒擋時候可以同樣快!
如果能教會自動駕駛漂移會很酷。
現在的我沒有駕照,但是也能通過瀏覽器獲得駕駛通信證了,榮譽!
期待后續可以加上背景音樂!
也有不少網友感嘆似乎回到了高中時期玩《Geep Simulator》的年代。不過,目前《Slow Roads》暫時還沒有開源版本的計劃,但作者表示將來不排除有這種可能性。同時根據游戲的頁面顯示,Anslo 稱正在致力于保持《Slow Roads》免費提供且沒有廣告,「享受這作為逃離資本主義的喘息之機」。
試玩地址:slowroads.io
參考資料:
https://anslo.medium.com/slow-roads-tl-dr-a664ac6bce40
https://twitter.com/anslogen
https://arstechnica.com/gaming/2022/10/slow-roads-offers-a-chill-endless-driving-experience-in-your-browser/
https://twitter.com/anslogen/status/1583850492463296517
*請認真填寫需求信息,我們會在24小時內與您取得聯系。