20200410 Teams&指標&人物彈跳
為了讓大家在疫情期間也能上課
一開始先用電腦版的Teams加入程式設計的課程
然後下載手機版的Teams 也打開來試用看看
--------------------------------------------------------------------------------------------------------------------------
再來教了指標
一開始先用CodeBlocks
///指標: (1)宣告 (2)放值 (3)使用
#include <stdio.h>
int main()
{
int a=100;
int b=200;
int *p;///(1)指標宣告(p是一個指標 指到整數)
p=&a;///(2)指標設定(把a的住址放入p)
printf("%d\n",*p);///(3)指標使用
p=&b;///(2)指標設定(把b的住址放入p)
printf("%d\n",*p);///(3)指標使用
return 0;
}
--------------------------------------------------------------------------------------------------------------------------
然後用C Tutor一步一步慢慢看
老師說 C語言的發明者說陣列就是指標!
所以為了看出指標跟陣列的關係 再弄另外一個程式
#include <stdio.h>
int a[10]={1,2,3,4,5,6,7,8,9};
int b[10]={9,8,7,6,5,4,3,2,1};
int *p;///宣告指標
int main()
{
p=a;///原本p=&a
printf("%d\n",p[3]);///印出a[3]
p=b;///變成p=&b
printf("%d\n",p[3]);///印出b[3]
return 0;
}
--------------------------------------------------------------------------------------------------------------------------
再來複習了之前教過的讓人物左右移動的方法
一開始先讓箭頭跟著鍵盤按下的鍵一起改變
PImage img1;//放真的照片
PImage img2;//放真的照片
PImage img3;//放真的照片
PImage img;//可以切換
void setup()
{
size(300,300);
img1=loadImage("img1.png");
img2=loadImage("img2.png");
img3=loadImage("img3.png");
img=img1;//把img1給img用
}
void draw()
{
image(img,100,100);
}
void keyPressed()
{
if(keyCode==RIGHT) img=img2;
if(keyCode==LEFT) img=img3;
}
void keyReleased()//放開按鍵時
{
img=img1;//img變回img1
}
--------------------------------------------------------------------------------------------------------------------------
再來讓箭頭移動
PImage img1,img2,img3;//放真的照片
PImage img;//可以切換
float x=100,y=100,vx=0;
void setup()
{
size(300,300);
img1=loadImage("img1.png");
img2=loadImage("img2.png");
img3=loadImage("img3.png");
img=img1;//把img1給img用
}
void draw()
{
background(255);
image(img,x,y);
x+=vx;
}
void keyPressed()
{
if(keyCode==RIGHT)
{
img=img2;
vx=1;
}
if(keyCode==LEFT)
{
img=img3;
vx=-1;
}
}
void keyReleased()//放開按鍵時
{
img=img1;//img變回img1
vx=0;
}
--------------------------------------------------------------------------------------------------------------------------
再來讓人物(哆啦A夢)可以邊彈跳邊移動
PImage img1,img2,img3;//放真的照片
PImage img;//可以切換
float x=100,y=100,vx=0,vy=-10;//一開始x坐標100 y坐標100 x速度(vx)100 y速度(vy)=-10
void setup()
{
size(300,300);
img1=loadImage("Doraemon.png");
img2=loadImage("img2.png");
img3=loadImage("img3.png");
img=img1;//把img1給img用
}
void draw()
{
background(255);
image(img,x,y,100,100);//image(img,x,y,寬,高)
x+=vx;//x坐標加上速度(vx)
y+=vy;//y坐標加上速度(vy)
vy+=0.98;//重力加速度(0.98)
if(y>=200) vy=-vy*0.9;//碰到最底下的時候反彈
}
void keyPressed()
{
if(keyCode==RIGHT)
{
img=img2;
vx=1;//速度向右
}
if(keyCode==LEFT)
{
img=img3;
vx=-1;//速度向左
}
}
void keyReleased()//放開按鍵時
{
img=img1;//img變回img1
vx=0;//速度=0
}
--------------------------------------------------------------------------------------------------------------------------
再來讓人物(哆啦A夢)可以自己邊彈跳邊移動
而且撞到牆的時候可以自行反彈
PImage img;//可以切換
float x=100,y=100,vx=3,vy=-10;//一開始x坐標100 y坐標100 x速度(vx)100 y速度(vy)=-10
void setup()
{
size(300,300);
img=loadImage("Doraemon.png");
}
void draw()
{
background(255);
image(img,x,y);
x+=vx;//x坐標加上速度(vx)
y+=vy;//y坐標加上速度(vy)
vy+=0.98;//重力加速度(0.98)
if(y>=200) vy=-vy*0.9;//碰到最底下的時候反彈
if(x>=200) vx=-vx;//碰到最右邊的時候反彈
if(x<0) vx=-vx;//碰到最左邊的時候反彈
}
--------------------------------------------------------------------------------------------------------------------------
心得
今天教了上學期有提到過的指標,但之前沒有太深入的了解,所以對於指標的概念還是有點模糊,但今天用C Tutor一步一步慢慢看之後,感覺更清楚了還有今天教的讓人物自己邊彈跳邊移動也很有趣,撞到左右兩側的時候還可以自己反彈!










沒有留言:
張貼留言