傳統錄影
實物投影的頭戴式GoPro教學示範法。
gopro
GOPRO 頭戴式
維冠大樓倒塌
https://sketchfab.com/models/e1afea999b534dd6bcc1fde663f3e7ed
HoloLens
Microsoft HoloLens: Galaxy Explorer Ep. 6 - Coming to Life
Target: Pacman1. Play It (OK)2. draw pacman3. move pacman4. draw map
void setup() {
size(500, 300);
}
int S=100; //mouth角度
int mouth=30;//45
int pacX=250, pacY=150, pacDir=0;//旋轉度數
void draw() {
background(255);
fill(#F7E007); 金黃色
//ellipse(250,150, S,S);
arc(pacX, pacY, S, S, radians(mouth+pacDir), radians(360-mouth+pacDir), PIE );
//張開的角度,嘴巴變大變小
//radians 角度的量測
mouth=abs((frameCount*3)%90-45); // frameCount ()絕對值
println(mouth);
void keyPressed() {
if (keyCode==UP) {
pacX -=10;
pacDir=180;
}
if (keyCode==DOWN) {
pacY +=10;
pacDir=90;
}
if (keyCode==RIGHT) {
pacX+=10;
pacDir=0;
}
if (keyCode==LEFT) {
pacY -=10;
pacDir=270;
}
}
畫小精靈
用倚天+鍵盤畫表格
PImage [] img=new PImage[10];
int [][] map={
{7,8,8,8,8,8,8,9},
{4,0,0,0,0,0,0,4},
{1,8,8,8,8,8,8,3}};
void setup(){
size(800,300);
img[0]=loadImage("0.png");
img[1]=loadImage("1.png");
img[3]=loadImage("3.png");
img[4]=loadImage("4.png");
img[7]=loadImage("7.png");
img[8]=loadImage("8.png");
img[9]=loadImage("9.png");
}
int S=100, pacX=250, pacY=150, pacDir=0, mouth=30;//pacDir: 0,90,180,270
void draw(){
background(255);
for(int y=0;y<3;y++){
for(int x=0;x<8;x++){
image(img[ map[y][x] ], x*100,y*100);
}
}
fill(#FEFF05);
arc(pacX,pacY, S,S, radians(mouth+pacDir), radians(360-mouth+pacDir), PIE);
mouth = abs( (frameCount*3)%90 -45 ) ;
// abs(frameCount%90-45): 45,44,43,... 0,.. 1,2,.....45, 45, 44, 43.....
}
void keyPressed(){
if(keyCode==RIGHT) {pacX+=3; pacDir=0;}
if(keyCode==DOWN) {pacY+=3; pacDir=90;}
if(keyCode==LEFT) {pacX-=3; pacDir=180;}
if(keyCode==UP) {pacY-=3; pacDir=270;}
}
PImage [] img=new PImage[10];
int [][] map={
{7,8,8,8,8,8,8,9, 7,8,8,8,8,8,8,9},
{4,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,4},
{1,8,8,8,8,8,8,3, 1,8,8,8,8,8,8,3},
{7,8,8,8,8,8,8,9, 7,8,8,8,8,8,8,9},
{4,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,4},
{1,8,8,8,8,8,8,3, 1,8,8,8,8,8,8,3}};
void setup(){
size(800,300);
for(int i=0;i<=9;i++) img[i]=loadImage(i+".png") ;
}
int S=50, pacX=250, pacY=150, pacDir=0, mouth=30;//pacDir: 0,90,180,270
void draw(){
background(255);
for(int y=0;y<6;y++){
for(int x=0;x<16;x++){
image(img[ map[y][x] ], x*S,y*S, S,S);
}
}
fill(#FEFF05);
arc(pacX,pacY, S,S, radians(mouth+pacDir), radians(360-mouth+pacDir), PIE);
mouth = abs( (frameCount*3)%90 -45 ) ;
// abs(frameCount%90-45): 45,44,43,... 0,.. 1,2,.....45, 45, 44, 43.....
}
void keyPressed(){
if(keyCode==RIGHT) {pacX+=3; pacDir=0;}
if(keyCode==DOWN) {pacY+=3; pacDir=90;}
if(keyCode==LEFT) {pacX-=3; pacDir=180;}
if(keyCode==UP) {pacY-=3; pacDir=270;}
}
int [][] map={
{7,8,8,8,8,8,8,9, 7,8,8,8,8,8,8,9},
{4,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,4},
{1,8,8,8,8,8,8,3, 1,8,8,8,8,8,8,3},
{7,8,8,8,8,8,8,9, 7,8,8,8,8,8,8,9},
{4,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,4},
{1,8,8,8,8,8,8,3, 1,8,8,8,8,8,8,3}};
void setup(){
size(800,300);
for(int i=0;i<=9;i++) img[i]=loadImage(i+".png")
}
int S=50, pacX=250, pacY=150, pacDir=0, mouth=30;//pacDir: 0,90,180,270
void draw(){
background(255);
for(int y=0;y<6;y++){
for(int x=0;x<16;x++){
image(img[ map[y][x] ], x*S,y*S, S,S);
}
}
fill(#FEFF05);
arc(pacX,pacY, S,S, radians(mouth+pacDir), radians(360-mouth+pacDir),
mouth = abs( (frameCount*3)%90 -45 ) ;
// abs(frameCount%90-45): 45,44,43,... 0,.. 1,2,.....45, 45, 44, 43.....
}
void keyPressed(){
if(keyCode==RIGHT) {pacX+=3; pacDir=0;}
if(keyCode==DOWN) {pacY+=3; pacDir=90;}
if(keyCode==LEFT) {pacX-=3; pacDir=180;}
if(keyCode==UP) {pacY-=3; pacDir=270;}
}
最終程式
PImage [] img=new PImage[10];
int [][] map={
{7,8,8,8,8,8,8,9, 7,8,8,8,8,8,8,9},
{4,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,4},
{4,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,4},
{4,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,4},
{4,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,4},
{1,8,8,8,8,8,8,3, 1,8,8,8,8,8,8,3}};
int pacXX=1,pacYY=1;// 0,1,2,....15
int S=50, pacDir=0, mouth=30;//pacDir: 0,90,180,270
void setup(){
size(800,300);
for(int i=0;i<=9;i++) img[i]=loadImage(i+".png");
for(int y=0;y<6;y++){
for(int x=0;x<16;x++){
if(map[y][x]==0) map[y][x]=5;
}
}
}
void draw(){
background(255);
for(int y=0;y<6;y++){
for(int x=0;x<16;x++){
image(img[ map[y][x] ], x*S,y*S, S,S);
}
}
if( map[ pacYY ][ pacXX ] ==5) map[ pacYY ][ pacXX ]=0;
fill(#FEFF05);
int pacX=pacXX*S+S/2, pacY=pacYY*S+S/2;
arc(pacX,pacY, S,S, radians(mouth+pacDir), radians(360-mouth+pacDir), PIE);
mouth = abs( (frameCount*3)%90 -45 ) ;
// abs(frameCount%90-45): 45,44,43,... 0,.. 1,2,.....45, 45, 44, 43.....
// int x= int(mouseX/S), y= int(mouseY/S);
// fill(255,0,0); rect(x*S,y*S, S,S);
}
int now=0;//now we are drawin 0 on the map[y][x]
void keyPressed(){
if(keyCode==RIGHT && (map[pacYY][pacXX+1]%5==0)) {pacXX++; pacDir=0;}
if(keyCode==DOWN && (map[pacYY+1][pacXX]%5==0)) {pacYY++; pacDir=90;}
if(keyCode==LEFT && (map[pacYY][pacXX-1]%5==0)){pacXX--; pacDir=180;}
if(keyCode==UP && (map[pacYY-1][pacXX]%5==0)) {pacYY--; pacDir=270;}
if(key=='0') now=0;
if(key=='1') now=1;
if(key=='2') now=2;
if(key=='3') now=3;
if(key=='4') now=4;
if(key=='5') now=5;
if(key=='6') now=6;
if(key=='7') now=7;
if(key=='8') now=8;
if(key=='9') now=9;
}
void mouseDragged(){
int x= int(mouseX/S), y= int(mouseY/S);
map[y][x]=now;
// float dx=mouseX-pmouseX, dy=mouseY-pmouseY;
// if(abs(dx)> 2* abs(dy)) map[y][x]=8;
// if(abs(dy)> 2* abs(dx)) map[y][x]=4;
}
沒有留言:
張貼留言