Ⅰ 如何用紙板DIY各種有趣的玩具
聖誕節到來的時候,一些小的裝飾性手工製作開始受到大家的關注和喜愛哦。例如聖誕樹的相關手工製作教程受歡迎的程度就十分的高。這里紙藝網向大家推薦的這個類似於紙模型的手工製作教程即為一個聖誕樹裝飾櫃的製作教程哦。我們能夠看到這個手工製作教程是藉助於圖紙,然後將卡紙進行組合,從而形成聖誕樹的造型效果來。從基本的製作質感和效果中我們能夠看到,這樣形成的聖誕樹裝飾櫃效果實用性很強哦。
Ⅱ 怎樣製作俄羅斯方塊
以下代碼粘貼在主場經第一禎,測試影片就看到了:
N = 20;//行數
WIDTH = 20;//方塊邊長
level = 0;//開始等級(下落速度)
ret = new Array();//當前出現的方塊
nextret = new Array();//下一個出現的方塊
bg = new Array();//背景數組
createEmptyMovieClip("panel", 1048575);//所有方塊都在此mc里
for (i = 0; i < 5; i++) {
//初始化方塊數組,2*5格式,前四行代表每個方塊的4個小塊的位置坐標,最後一行第一列是方塊形狀,第二列是方塊旋轉方向
ret.push(new Array(2));
nextret.push(new Array(2));
}
for (i = 0; i < 20; i++) {//初始化背景數組,10*20格式
bg.push(new Array(10));
}
X = Y = panel._x = panel._y = 0;//換為X、Y表示
function reach(x:Number, y:Number, ret:Object) {
//x、y為方塊位置,ret為方塊形狀,若方塊ret下落一格碰到邊界或者方塊返回1
var i:Number, j:Number, k:Number;
for (i = 0; i < N; i++) {
for (j = 0; j < 10; j++) {
if (bg[i][j] == 219) {
for (k = 0; k < 4; k++) {
if (x + ret[k][0] == j && y + ret[k][1] + 1 == i) {
return 1;
}
}
}
}
}
return 0;
}
function lrnotout(lorr:Number, a:Object) {
//lorr==-1代表a往左邊一格可行性的判斷,lorr==1代表右邊一格可行性的判斷,lorr==0代表a的位置合理性的判斷,出現不合理則返回0
var i:Number;
if (lorr == -1) {
for (i = 0; i < 4; i++) {
if (x + a[i][0] - 1 < 0 || reach(x - 1, y - 1, a)) {
return 0;
}
}
}
if (lorr == 1) {
for (i = 0; i < 4; i++) {
if (x + a[i][0] + 1 > 9 || reach(x - 1, y + 1, a)) {
return 0;
}
}
}
if (lorr == 0) {
for (i = 0; i < 4; i++) {
if (x + a[i][0] < 0 || x + a[i][0] > 9) {
return 0;
}
}
}
return 1;
}
function rv(a:Object, ret:Object) {
//方塊賦值,將a方塊賦值到ret方塊
var i:Number;
for (i = 0; i < 5; i++) {
ret[i][0] = a[i][0], ret[i][1] = a[i][1];
}
}
function rotate(ret:Object) {
//根據方塊ret最後一行(分別是形狀指示變數和旋轉方向變數)為ret的前四行賦以具體形狀值
switch (ret[4][0]) {
case 0 ://方形
a = [[1, 0], [2, 0], [1, 1], [2, 1], [0, 0]];
rv(a, ret);
return;
case 1 ://長形
switch (ret[4][1]) {
case 1 :
a = [[0, 0], [1, 0], [2, 0], [3, 0], [1, 0]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 0 :
a = [[1, 0], [1, 1], [1, 2], [1, 3], [1, 1]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
}
case 2 ://Z形
switch (ret[4][1]) {
case 1 :
a = [[0, 1], [1, 1], [1, 2], [2, 2], [2, 0]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 0 :
a = [[2, 0], [1, 1], [2, 1], [1, 2], [2, 1]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
}
case 3 ://反Z形
switch (ret[4][1]) {
case 1 :
a = [[1, 1], [2, 1], [0, 2], [1, 2], [3, 0]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 0 :
a = [[1, 0], [1, 1], [2, 1], [2, 2], [3, 1]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
}
case 4 ://T形
switch (ret[4][1]) {
case 3 :
a = [[1, 0], [0, 1], [1, 1], [2, 1], [4, 0]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 0 :
a = [[1, 0], [0, 1], [1, 1], [1, 2], [4, 1]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 1 :
a = [[0, 1], [1, 1], [2, 1], [1, 2], [4, 2]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 2 :
a = [[1, 0], [1, 1], [2, 1], [1, 2], [4, 3]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
}
case 5 ://倒L形
switch (ret[4][1]) {
case 3 :
a = [[1, 0], [2, 0], [1, 1], [1, 2], [5, 0]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 0 :
a = [[0, 1], [0, 2], [1, 2], [2, 2], [5, 1]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 1 :
a = [[2, 0], [2, 1], [1, 2], [2, 2], [5, 2]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 2 :
a = [[0, 1], [1, 1], [2, 1], [2, 2], [5, 3]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
}
case 6 ://L形
switch (ret[4][1]) {
case 3 :
a = [[1, 0], [2, 0], [2, 1], [2, 2], [5, 0]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 0 :
a = [[0, 1], [1, 1], [2, 1], [0, 2], [5, 1]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 1 :
a = [[1, 0], [1, 1], [1, 2], [2, 2], [5, 2]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
case 2 :
a = [[2, 1], [0, 2], [1, 2], [2, 2], [5, 3]];
if (lrnotout(0, a) && !reach(x, y - 1, a)) {
rv(a, ret);
}
return;
}
}
}
function generate(ret:Object) {//隨機產生方塊函數(可進一步修正)
ret[4][0] = Math.floor(Math.random() * 7);
ret[4][1] = Math.floor(Math.random() * 4);
rotate(ret);//完成方塊ret的具體形狀的賦值
}
function init() {//初始化背景、方塊、運動函數
var i:Number, j:Number;
for (i = 0; i < N; i++) {//初始化背景,邊界為219,其餘為' '
for (j = 0; j < 10; j++) {
if (i == N - 1) {
bg[i][j] = 219;
} else {
bg[i][j] = ' ';
}
}
}
for (i = 0; i < 5; i++) {//為當前方塊賦初值0
ret[i][0] = ret[i][1] = 0;
}
generate(ret);//產生當前方塊
generate(nextret);//產生下一個方塊
y = 0, x = 3, score = lines = 0, level=0;//當前位置坐標和計分系統初始化
_tetris.removeTextField();//如果從結束過的游戲恢復,刪除結束標志
display();//顯示畫面
frameflag = 0;//標示下落時間間隔
onEnterFrame = function () {
frameflag++;
if (10 - frameflag < level) {//根據等級level確定下落時間間隔
frameflag = 0;
go();//下落及判斷
}
};
}
function drawblock(a, b, c, d) {//繪制方塊的小塊
with (panel) {
beginFill(0x000FFF, 100);
lineStyle(1, 0xFF00FF);
moveTo(panel._x + a, panel._y + b);
lineTo(panel._x + c, panel._y + b);
lineTo(panel._x + c, panel._y + d);
lineTo(panel._x + a, panel._y + d);
lineTo(panel._x + a, panel._y + b);
endFill();
}
}
function erase() {//刪除一行方塊
var n:Number = 0, i:Number, j:Number, k:Number, l:Number;
for (i = 0; i < N - 1; i++) {
for (j = 0; j < 10; j++) {
if (bg[i][j] == ' ') {//如果該行有空,則開始判斷下一行
i++, j = -1;
if (i == N - 1) {//行N-1為底線,不判斷
break;
}
} else if (j == 9) {//判斷到該行最後一列都沒有空
for (k = i; k >= 1; k--) {//上方方塊下落
for (l = 0; l < 10; l++) {
bg[k][l] = bg[k - 1][l];
}
}
for (l = 0; l < 10; l++) {//刪除該行
bg[0][l] = ' ';
}
n++;//此次刪除行數變數增一
if ((lines + n) % 30 == 0) {//刪除行數總數到30的倍數則等級上升
level = (level + 1) % 10;
}
}
}
}
lines += n, score += (n * n + n) * 50;//總行數增n,計算得分
}
function display() {
//顯示函數,採用全部清除再重繪制的方法(因為這個程序本來是在Turbo C 2.0的文本環境下完成的)
var i:Number, j:Number;
panel.clear();
with (panel) {//畫邊界
lineStyle(1, 0x0000FF);
moveTo(panel._x, panel._y);
lineTo(panel._x + WIDTH * 10, panel._y);
lineTo(panel._x + WIDTH * 10, panel._y + WIDTH * (N - 1));
lineTo(panel._x, panel._y + WIDTH * (N - 1));
lineTo(panel._x, panel._y);
}
for (i = 0; i < 4; i++) {//當前方塊占據的地方賦值為邊界類型219
bg[y + ret[i][1]][x + ret[i][0]] = 219;
}
for (i = 0; i < N - 1; i++) {//繪制背景方塊
for (j = 0; j < 10; j++) {
if (bg[i][j] == 219) {
drawblock(j * WIDTH + X, i * WIDTH + Y, j * WIDTH + WIDTH + X, i * WIDTH + WIDTH + Y);
}
}
}
for (i = 0; i < 4; i++) {//繪制當前方塊
drawblock(nextret[i][0] * WIDTH + 14 * WIDTH + X, nextret[i][1] * WIDTH + 12 * WIDTH + Y, nextret[i][0] * WIDTH + WIDTH + 14 * WIDTH + X, nextret[i][1] * WIDTH + WIDTH + 12 * WIDTH + Y);
}
for (i = 0; i < 4; i++) {//當前方塊繪制完畢,重新將當前位置改為' '
bg[y + ret[i][1]][x + ret[i][0]] = ' ';
}
createTextField("_lvltxt", 1, 270, 100, 100, 20);//繪制計分系統
createTextField("_scrtxt", 2, 270, 130, 100, 20);
createTextField("_lnstxt", 3, 270, 160, 100, 20);
_lvltxt.text = "Level: " + level;
_scrtxt.text = "Score: " + score;
_lnstxt.text = "Lines: " + lines;
}
function go() {//下落函數
var sss:Number = reach(x, y, ret);//當前方塊下落一格是否碰到邊界或方塊
var ii:Number;
if (!sss) {
y++;//如果當前方塊下落一格沒有碰到邊界或方塊則下落一格
}
display();//重新繪制
if (sss) {//碰到邊界或方塊
score += 10;//得10分
display();//重新繪制
for (ii = 0; ii < 4; ii++) {//修改背景數組,將當前方塊的位置改為邊界類型
bg[y + ret[ii][1]][x + ret[ii][0]] = 219;
}
erase();//刪除行判斷及執行
rv(nextret, ret);//將下一個方塊賦值為當前方塊
y = 0, x = 3;//重置方塊位置
generate(nextret);//生成下一個方塊
display();//重新繪制
if (reach(x, y, ret)) {//如果下一格碰到方塊則游戲結束
createTextField("_tetris", 100000, WIDTH * 3.3, WIDTH * N / 3, 70, 20);
_tetris._x += 200;
_tetris._y += 50;
_tetris._xscale = 300;
_tetris._yscale = 300;
_tetris.background = true;
_tetris.text = "Game Over!";
onEnterFrame = function () {//停止下落
};
}
}
}
function key() {
if (Key.isDown(Key.UP)) {
rotate(ret);
display();
}
if (Key.isDown(Key.LEFT)) {
if (lrnotout(-1, ret)) {//左移可行性判斷
x--;
display();
}
}
if (Key.isDown(Key.RIGHT)) {
if (lrnotout(1, ret)) {//右移可行性判斷
x++;
display();
}
}
if (Key.isDown(Key.DOWN)) {//鍵盤控制下落
go();
}
if (Key.isDown(Key.SPACE)) {//一鍵下落到底
while (!reach(x, y, ret)) {
y++;
}
go();
}
if (Key.isDown(82)) { //重新開始游戲
init();
}
}
init();//初始化
setInterval(key, 80);//每個80毫秒執行一次鍵盤事件函數
createTextField("hinttxt",33324,200,20,300,50);
hinttxt.text="鍵盤鍵:上,下,左,右,R(reset),空格";
Ⅲ 如何用廢舊物品做手工
以可樂瓶做燈籠為例,您可以發現身邊的廢舊物品,發揮自己想像來操作
1 挖造型孔——感謝儲蓄罐盒子上一個長方形的原裝孔給了我靈感,於是在另外三側各挖了:心形、星形和三角形的三個造型孔;在上面的小喜糖盒子四面各挖了:圓形、心形、方形和小熊形狀的四個造型孔。
2封孔——如果不對四周的孔進行包裝處理,到時候裡面的燈珠一清二楚,是沒有美觀可言的。我恰好想起幾年前還有一包用來塑封照片的薄膜封,於是翻箱倒櫃找出來,在各個孔洞的內側都封了一張,恰好這薄膜有一種朦朧的磨砂般的感覺,哈哈,真是天助我也!
3兩個大小盒子之間的聯結——如果直接用雙面膠相互間固定,簡便是簡便了,但是問題有兩個, 一是那個燈珠是一串的,如果要上下兩個盒子都有亮光的效果,勢必要挖空讓燈珠串串通行;二是如果只讓兩個盒子對接粘住,可能拿來拿去的過程中就會分離脫節。所以,我只能在大盒子的蓋子上剪出小盒子的平面尺寸,然後將小盒子下面的盒蓋從剪出的孔中伸入大盒子蓋子內部,反扣後與大盒子蓋子緊緊粘結,這樣子,兩個盒子相互扣牢聯結在一起,牢固度就有了保障!
4燈飾電池及開關的安置——這可是實現燈籠亮燈的關鍵!線路原本在玩具的塑料封格里,取出來都成了七零八散的狀態,電池、線路兩極、開關等等各成一體。好在樂媽我足夠聰明,自己估摸著大小用硬紙殼給做了個模子把這些東西又重新組裝在了一起,並且用膠帶給固定牢後用雙面膠把電源貼到了盒子裡面的頂端,又挖了個孔把開關按鈕給露出來,裡面用膠帶給固定牢,確保外面按鈕時不至於將開關按到盒子裡面去。
5 四個角的小裝飾——恰好之前買了一棵一米八的聖誕樹,套餐裡麵包含了兩百多樣小東西,就隨手拿了四個蝴蝶結和四個小櫻桃做裝飾,用雙面膠固定在四個角。樂奶說這么裝飾不好看,但是時間緊張,當我們做這一項工作的時候,已經十一點多了,小傢伙已經困得有些在鬧騰了,所以,也就這么將就著吧,懶得比較和更換其他裝飾品了!
對於輔料的使用
雙面膠——昨晚雙面膠真是損失慘重啊!樂樂小朋友在幫我貼燈籠的時候嫌不過癮,又在一旁用雙面膠在紙上貼房子和笑臉,當她把兩卷雙面膠都徹底敗光了、向我們展示她貼的一張張房子和笑臉的時候,我快要哭了!——好在我還能夠湊合著手裡的幾小段雙面膠把燈籠給粘完啊!
總結
大家可以利用身邊的一切可以利用的廢舊物品進行循環利用,有心的人必定能變廢為寶,發揮大家的想像和創意為生活增添一點色彩。
Ⅳ 如何DIY廢舊硬紙板手工製作方法圖解
Diy房子
如果你是一個學生做手工,用硬紙板就行了。找到一個紙箱,切四周,然後一個用於屋頂,在門窗的相應位置畫一個房子。如果另一個現實的角度用刀切割門窗,開方孔密封膠帶的玻璃。有圍牆環繞,小腦袋砍了屋頂,就是一個小瓦房。
Ⅳ 用廢舊紙盒做垣克簡單的怎麼製作
准備材料/工具:紙箱或紙板、膠水、剪刀。
1、首先要准備一個紙箱或紙板,通過折疊的方式做出坦克的主體部分。
Ⅵ 怎樣用廢舊紙箱做手工
下面介紹的是廢舊紙箱廢物利用手工製作垃圾桶的教程,不但實用而且賣相也不錯。以後家裡購物時剩下的紙板箱就不要再隨意丟掉啦,可以嘗試廢物利用,變廢為寶!具體製作步驟,請參考下面的詳細圖解教程。
工具材料:
廢舊紙箱(這里使用的是空調包裝盒)、禮品包裝紙兩張、雙面膠、透明膠、美工刀、剪刀、直尺、圓規。
製作步驟:
選取比較平整的紙板裁剪成:長81CM、寬29CM的長方形,把紙板沿較長的邊等分成6份,並用筆畫好線,用來製作垃圾桶的桶身。
Ⅶ 俄羅斯方塊怎麼做(要思想)
不要留空的
Ⅷ 用紙板做的手工
用紙板做的手工"/>
"/>
Ⅸ 如何用硬紙板做漂亮的手工
用硬紙板做紙房子:
所需工具:紙箱、剪刀、透明膠帶、針線、布、畫筆。
製作步驟:
1、找出家裡不用的大紙箱,清理干凈,用剪刀把底部剪開。
2、把剪開的上部分紙箱用透明膠帶固定好,正前方下部多出來的紙片用剪刀剪下來,房子的門便形成了。
3、再取兩塊紙片做出房子的屋頂,側面用剪刀劃出一個長方形的窗戶,找出兩塊相同大小的布,用針線縫在窗戶上方的合適位置作為窗簾,再用絲帶做出窗框即可完成窗戶。
4、另一個側面剪出一個長方形的窗戶,裡面也縫上一塊窗簾,用畫筆在房頂上面畫出漂亮的屋頂線即可。
5、漂亮的房子就做好了。