ETH官方钱包

創(chuàng)作內(nèi)容

1 GP

4/2,未來一週或一個月要完成的網(wǎng)頁程式(4/3已完成),根據(jù)文字檔反繪圖檔(用jQuery)

作者:李兒諳│2018-04-02 19:28:58│巴幣:2│人氣:123
上一篇是由已知圖檔產(chǎn)出相關(guān)文字

黑3白11黑227
白23黑218
白25黑6白1黑209
白35黑206
白36黑205
白38黑203
黑2白37黑202
黑4白37黑200
黑6白36黑199
黑7白36黑198

那接著要做的事情就是
根據(jù)這類格式的文字檔(格式可能會略有變動)
反過來產(chǎn)出圖檔
為什麼要這麼做呢?
因為減少點繪的視力負(fù)擔(dān)跟手的負(fù)擔(dān)
此外也算是在為以後若可能的話
由程式來產(chǎn)生圖檔鋪路
不然一個人所能負(fù)責(zé)的圖檔量是很有限的
比較具規(guī)模、吸引人的遊戲
幾乎都是處理視覺藝術(shù)的團(tuán)隊人數(shù)佔的最多

音樂遊戲我倒不知道
不過音樂遊戲就個人猜想
就算負(fù)責(zé)視覺的可能比較少
也不會少到哪裡去
極簡略版的仿跳舞機(jī)程式圖檔也許還能一人應(yīng)付
但只要背景稍微豐富或說多變些的就...

不過這程式就算寫出來
上色也是個問題
雖然說上色理論上有PaintsChainer可以用就是了
自動上色的難度就很高了
目前已知的方式大多是計算大量圖檔得出的結(jié)果
雖然聽說有種技術(shù)能大幅減少訓(xùn)練電腦所需的原始資料
不過...
最主要的是我不知道那要怎麼做
(猜測不是正常人三萬多塊左右一臺電腦能處理的)
再來就算是大幅減少,可能基數(shù)還是很大
就像少子化不代表人口少,因為還可能搭配高齡化這樣

最後,電動用的圖檔還是自己上色較好
特別是2D圖檔
因為可以用色版技術(shù)
例如有張圖綠色佔多數(shù)
那它的綠色可能有十幾種
把那十幾種色碼存起來
替換掉就能夠達(dá)到傳統(tǒng)紅白機(jī)遊戲2P色的效果

3D模型有光線問題,印象中是用算的
可以看這影片

暫且不提模型的陰影那些
專注於影子上即可!!
不過換個想法就是,若用3D就有可能達(dá)到影片般的效果

嗯,剛才提的幾乎都是短時間與長時間內(nèi)我大概做不到的事情
做不到的事情偶爾妄想下感覺不錯
但要是深陷其中的話可能會感到痛苦!!

「人生就是一團(tuán)欲望。當(dāng)欲望得不到滿足便痛苦,
當(dāng)欲望得到滿足便無聊,人生就像鐘擺一樣在痛苦與無聊之間擺盪。」
                          ──亞瑟?叔本華

就跟聽數(shù)理課的技巧一樣
上一題聽不懂的話就別想了,直接切入下一題狀態(tài)
不過要是下一題呈上題的話,確實還是會翹辮子啦!!
這就是為何上課需要預(yù)習(xí)
預(yù)習(xí)之後發(fā)現(xiàn)有些地方讀不懂,上課再聽才比較會有感覺

嗯,扯遠(yuǎn)了
要達(dá)到這目標(biāo)
應(yīng)該是得用jQuery了
以我的實力還沒辦法在不用jQuery的情況下
直接用javascript讀取文字檔
以前做網(wǎng)頁文字型冒險遊戲(AVG)時
算有成功過
因此建議瀏覽器用Firefox
不然Chrome為內(nèi)核的瀏覽器
印象中那時預(yù)設(shè)不支援file:///來開的網(wǎng)頁檔進(jìn)行文字檔的讀取

這段時間的上班休息時間
我就試著背背看那張圖吧
看能否有所發(fā)現(xiàn)!!
像是頭型與頭髮的畫法這樣
(這種圖檔記法,比較不好記眼睛怎麼畫,
雖然眼睛附近應(yīng)該是相對於臉的其它地方較少空白啦)
這篇大概就這樣
希望不會無疾而終!!

我用想的應(yīng)該是不難才對
不過不排除實作過程遇到很奇怪的問題
因此時間說是一週或一個月
雖然是寫一週或一個月
但沒放假時進(jìn)度應(yīng)該很有限
我工作時間連午休的話,目前一天是佔11個小時
(我們的工作就像是學(xué)校一天的課表空了個好長的空堂
不過多數(shù)時間要在工作場所待命就是了)
午休會比較有後顧之憂
只有在狀況很好時才會在午休時寫程式

往好的方向想
一天應(yīng)該還是有兩小時以上能寫程式
雖然工作待命時很難進(jìn)入思考狀況
但理論上工作待命時是可以思考程式
(雖然思考程式不方便立刻實作是蠻痛苦的事情)
那這篇就此作結(jié)

---------4/3,第一步驟網(wǎng)頁程式檔,draw_bitmap_step_1.,html---------
https://github.com/y541258/HTML5/blob/master/pixel_art/draw_bitmap_step_1.html
這檔案還沒辦法用文字檔與文字
只是塗個8*8大小的黑色方塊
所以才是第一步驟
目前若要改動,大概就需要寫死在程式碼
雖然用文字檔的話
其實也僅是把圖檔內(nèi)容改寫死在文字檔中
不過這樣至少程式檔不用反覆修改

第一步驟還算順利算是個好消息吧
ImageData物件,三個參數(shù)可以完成宣告
1.Uint8ClampedArray
2.寬度
3.高度
Uint8ClampedArray只要輸入長度就可以完成宣告
但長度必須是寬度*高度*4
*4的原因是一個pixel四個陣列元素,分別是RGBA,範(fàn)圍是0~255

因此網(wǎng)頁檔或說程式碼如下:
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<body>

<canvas id="myCanvas" width="640" height="640"></canvas>
<div id="div_display"></div>

<script>
//參考網(wǎng)頁http://www.w3school.com.cn/tags/canvas_getimagedata.asp
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

var uint8ClampedArray = new Uint8ClampedArray(256);

for(i=0;i<256;i+=4)
{
  uint8ClampedArray[i+3]=255;
//因為預(yù)設(shè)值是全部都是0,RGB 000就是黑色
//但Alpha值0是透明,預(yù)設(shè)會看不見
//所以改成255就是完全不透明
//RGBA,Alpha是第四個,但i是從0開始,所以 紅是i,綠是i+1,藍(lán)是i+2,透明度是i+3
}

var draw_imgData = new ImageData(uint8ClampedArray,8,8);

ctx.putImageData(draw_imgData,0,0);
</script>

</body>
</html>

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
程式雖然寫出來了
但發(fā)現(xiàn)昨天的程式我寫出來了但是理解錯誤
由於有些累,錯在哪邊改天再想吧!!
先貼範(fàn)例程式與能順利運(yùn)作的文字檔

範(fàn)例檔需要三個才能順利運(yùn)作
https://github.com/y541258/HTML5/blob/master/pixel_art/draw_bitmap_final.html
https://github.com/y541258/HTML5/blob/master/pixel_art/jquery-1.11.1.js
https://github.com/y541258/HTML5/blob/master/pixel_art/youmu.txt
文字檔第一行要標(biāo)明檔案寬度

同時昨天的檔案建議置換成這個比較好用
https://github.com/y541258/HTML5/blob/master/pixel_art/bitmap_remember_run_length_for_draw.html
雖然只要把昨天的程式檔黑改成B,白改成W即可

然後在網(wǎng)頁檔不掛在網(wǎng)頁伺服器下執(zhí)行的話
很可能只能在Firefox瀏覽器底下順利執(zhí)行


---------4/3,成果,draw_bitmap_final.,html---------
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<body>

<canvas id="myCanvas" width="640" height="640"></canvas>
<div id="div_display"></div>

<script src="jquery-1.11.1.js"></script>

<script>
//參考網(wǎng)頁http://www.w3school.com.cn/tags/canvas_getimagedata.asp
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

var bitmap_size;
var uint8ClampedArray;

var text_array=[];
var temp_array=[];
var compute_array=[];
var offset=0;

$(document).ready(
            function ()
            {
                $.get('youmu.txt', function(data)
                {
                    text_array.push(data);
                    text_array=text_array.toString().split('\r\n');
                    temp_array=text_array[0].split(" ");

                    bitmap_size=parseInt(temp_array[0]);
                    uint8ClampedArray = new Uint8ClampedArray(bitmap_size*(text_array.length-1)*4);
                    
                    
                    for(var i=1;i<text_array.length;i++)
                    {
                        temp_array=text_array[i].split(" ");
                        for(j=0;j<temp_array.length;j+=2)
                        {
                         if(temp_array[j]=="B")
                         {
                          for(k=0;k<parseInt(temp_array[j+1]);k++)
                          {
                           uint8ClampedArray[offset]=0;
                           uint8ClampedArray[offset+1]=0;
                           uint8ClampedArray[offset+2]=0;
                           uint8ClampedArray[offset+3]=255;
                           offset+=4;
                          }
                          }
                         else if(temp_array[j]=="W")
                         {
                          for(k=0;k<parseInt(temp_array[j+1]);k++)
                          {
                           uint8ClampedArray[offset]=255;
                           uint8ClampedArray[offset+1]=255;
                           uint8ClampedArray[offset+2]=255;
                           uint8ClampedArray[offset+3]=255;
                           offset+=4;
                          }
                          }
                        }
                    }

                 var draw_imgData = new ImageData(uint8ClampedArray,bitmap_size,text_array.length-1);

                 ctx.putImageData(draw_imgData,0,0);
                },'text');
            });
</script>

</body>
</html>
引用網(wǎng)址:http://www.jamesdambrosio.com/TrackBack.php?sn=3941768
All rights reserved. 版權(quán)所有,保留一切權(quán)利

相關(guān)創(chuàng)作

留言共 1 篇留言

great chef
用 Javascript 讀文字檔看你要用 fetch 或 XMLHttpRequest 。
只是 chrome 在 file:// 下一樣會被擋住。

var request = fetch('youmu.txt')
var loadData = request.then(response => response.text())
var loadData.then(function (data) {
/* 你的程式 */
})

var xhr = new XMLHttpRequest()
xhr.open('GET', 'youmu.txt')
xhr.onload = function () {
var data = this.responseText
/* 你的程式 */
}
xhr.send()

06-16 00:20

李兒諳
感謝,意外的還蠻簡便的06-16 08:53
我要留言提醒:您尚未登入,請先登入再留言

1喜歡★y541258 可決定是否刪除您的留言,請勿發(fā)表違反站規(guī)文字。

前一篇:4/1,記圖之網(wǎng)頁程式,... 後一篇:4/4,遊戲設(shè)計較有方向...

追蹤私訊切換新版閱覽

作品資料夾

對於個人而言特別重要的 (42)

自編遊戲綜合考題與試答 (11)

單機(jī)版網(wǎng)頁遊戲系列相關(guān) (21)
如何改成線上版網(wǎng)頁遊戲系列 (7)
自製腳本語言 (2)
3D (1)
格鬥遊戲 (1)
遊戲賞析系列 (1)
遊戲程式進(jìn)展 (21)
簡略音樂遊戲 (3)
地水師 (6)
多媒體素材處理 (13)
文字型冒險遊戲 (7)
極簡陋大富翁 (3)
RPG迷宮與戰(zhàn)鬥雛形 (12)
競技型俄羅斯方塊 (1)
組牌遊戲 (2)
魔喚精靈日本版─闇箏 (1)
旋轉(zhuǎn)泡泡球(待處理) (0)
常見網(wǎng)頁遊戲系統(tǒng)模仿 (3)
橫版過關(guān)遊戲 (3)
滑動式拼圖 (1)
遊戲設(shè)計師─被設(shè)計好的五年 (13)

程式語言建立自信系列 (8)

Unity相關(guān) (6)

[問題與思考] (7)

實況、名詞、關(guān)注議題分享 (49)
實況歌單 (1)

音樂與自動作曲相關(guān) (11)
聽譜練習(xí) (12)
自動作曲研究 (4)

玩遊戲感想 (49)
電動日記(真的日記,不是遊戲名稱) (9)
式姬-幽界之門 (19)
うつしよの帳 (1)
送帳號 (1)
陰陽師 (3)

遊戲妄想 (14)
偶爾正經(jīng)下 (2)

對正規(guī)教育的期許 (26)

時光旅行 (4)

除去上述分類後還是跟程式語言相關(guān) (18)

小說-離心力 片段 (46)

知乎 (35)

異國研究 (3)
日本 (5)
俄國 (0)
印度 (1)
多文化綜合比較 (6)

一行文 (11)

各領(lǐng)域歷史與沿革或說想法發(fā)想 (13)
數(shù)學(xué) (14)
計算機(jī)(程式,電路) (4)
語言 (3)

讀後感 (1)

未分類 (192)

kazenochen大家
奇幻輕小說《探索者彈頭》絕讚連載中!衝擊的展開!?看更多3小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網(wǎng)路標(biāo)準(zhǔn),可能無法使用新的應(yīng)用程式來呈現(xiàn)網(wǎng)站內(nèi)容,在瀏覽器支援度及網(wǎng)站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現(xiàn)和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業(yè)系統(tǒng)版本才可使用)

face我們了解您不想看到廣告的心情? 若您願意支持巴哈姆特永續(xù)經(jīng)營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學(xué)】