Skip to content

week13.md

stereomp3 edited this page May 21, 2021 · 18 revisions

download docx note 網頁設計第十一次上課.docx



前面先複習5/7號的內容
新增內容 : calculator2, clock2, e2c2, e2c解說

calculator2主要把運算都放到一個格子裡面

error

用eval完成運算(再次強調,eval很危險,不要隨便使用)

clock2主要是把之前的setTimeout(showTime,1000); 改成 setInterval

error

setTimeout只會跑一次要用遞迴,setInterval本身就會自己跑

e2c是英中翻譯機,利用字串a dog chase a cat再把它split(‘ ’)利用空白分割裡面的內容,成為一個一個字,最後再放到e2c矩陣裡翻譯

error

Join是把矩陣裡面的所有物件都加入後面的”?”,這裡是加空白

e2c2是上面e2c的強化版,跟5/7號裡面的translator.html類似,利用的是Deno.args裡的功能(這是額外的函式庫)

error

Deno.args.slice(0)把下面輸入的字逐字翻譯(從第1個)

BOM

hash

hash是指在網址後面加#...的東西

error
像上面的這個是把hash丟入網站裡面
#符號是用來當書籤用的,當網頁很長時,可以透過書籤做整理
(#後面輸入id)

其他的BOM在5/14就說得差不多了

MODULE

<script type="module"> import {hello} from './hello.js' hello() </script>

這個是比較新的寫法,如果希望程式更有彈性且模組化,就可以用
但是它需要伺服器才可以用Q^Q

現在就先簡單介紹如何開伺服器

1.先到需要開伺服器的檔案那裡開終端機
2.在終端機打deno upgrade
3.把伺服器安裝進去,在終端機打
deno install --allow-net --allow-readhttps://deno.land/std@0.97.0/http/file_server.ts
出現✅  Successfully installed file_server就是成功了!!

如果安裝過要強制安裝要輸入 :

deno install --allow-net --allow-read -f https://deno.land/std@0.97.0/http/file_server.ts

之後指定要上去的文件,在終端機打 file_server ./(目前資料夾,如果是../就是上個資料夾)
之後他就會顯示文件在伺服器的位置了

我的找不到位置QQ error

STORAGE

這個有分localStorage(存在本地)和sessionStorage(存在本地可以重整,但離開就會不見)

local

error
error

利用localStorage可以跨網頁取得資訊,前面第一張圖是先存(‘user1’)的資訊(‘snoopy’),之後另一個網頁呼叫localStorage.getItem(‘user1’)就會印出snoopy
這種方法只可本地使用,自己設定的東西只有自己能看到

error

clickCount

現在的瀏覽器基本上都支援localStorage,所以不用加前面的那個也可以,就直接寫像下面這樣

error

這個是沒伺服器目前網頁唯一儲存的方法

下面這個是sessionStorage,和localStorage寫法差不多,不過sessionStorage重整資料還在,離開就會重來

error

CANVAS

basic

error

上面的程式最後會長的像左邊那樣

//主要是先生成畫板
var c = document.getElementById("myCanvas");
c var ctx = c.getContext("2d");
//放入圖片
document.getElementById("ball"); 
//再拿畫筆畫
ctx.beginPath();
//回傳話板
ctx.stroke();

ballmove1

error

windows.onload = main指的是一開始帶入main函式

ctx.clearRect(矩形的的x, 矩形的的y, 矩形的的width, 矩形的的height);

這裡是設置ctx.clearRect(0, 0, canvas.width, canvas.height);
代表從0到整個畫板做清除

ballmove2

error

這個是順暢的動畫,用windows.requestAnimationFrame做動畫

ballgame

error

上面這個和剛剛上上面的那個差在update(),這個會反彈

程式碼不一定要從上看到下,有些程式碼就要從下看到上

mouseMove

error

這個是可以取得滑鼠位置的程式碼,如下圖

error

canvasSave

error
error

document.getElementById(‘myCanvas’).toDataURL()

可以存canvas裡面的圖

painter

error

這個是繪畫板,用點選、移動、放開按鍵事件(e)進行繪圖動作

pingpong

下面是乒乓球遊戲,很複雜

遊戲大變數 :

error

主要框架 :

error

遊戲初始化和遊戲動作 :

error

遊戲繪製 :

error

玩家和內部內容 :

error

電腦和內部內容

error

球的部分跟上一個反彈的球差不多,不過有奇怪的符號 ? 和 :

error

而且超長

如果要遊戲模板可以用下面的
遊戲框架 phaser -- https://phaser.io/

Clone this wiki locally