2020年4月10日 星期五

正課 Week 07_07166046

防疫遠端上課準備,登入Teams












手機 APP 登入
























--------------------
指標




#include <stdio.h>

int main()

{

    int a=100, b=200;      //宣告變數a=100,b=200

    int *p;                        //宣告指標(p是一個指標,指到整數)
    p= &a;                       //& 表示 address(住址)
                                      //把a的住址放入p
    printf("%d\n", *p);    //指標使用,印出指向的住址
    p= &b;                       //把b的住址放入p
    printf("%d\n", *p);    //指標使用,印出指向的住址
}

---------------------------------
第一步 讀入 a,b 的值














第二步 p = 指向 a 的住址













第三步 印出 p 指向的住址 a 















第四步 p 指向的住址改為 b













第五步 印出 p 指向的住址 b








---------------------------------
電玩程式


PImage img1;







PImage img2;
PImage img3;           //宣告ing1,2,3
PImage img;             //img為可切換

void setup()
{
   size(300,300);
   img1=loadImage("img1.png");     
   img2=loadImage("img2.png");
   img3=loadImage("img3.png");    
//讀入img1,2,3 (要先把3張圖片拉到程式裡)
   img=img1;        //img等於img1
}
void draw(){
   image(img,100,100);      
//一開始把img(此時為img1)放在(100,100) 位置
}
void keyPressed()
{
   if(keyCode==RIGHT) img=img2;   
 //如果按方向鍵右,img變為img2
   if(keyCode==LEFT) img=img3;
 //如果按方向鍵左,img變為img3
}
void keyReleased(){
   img=img1;          //放開方向鍵時,img變回img1
}


























---------------------------------
改寫,按方向鍵可往右跑/往左跑


PImage img1;
PImage img2;
PImage img3;
PImage img;
float x=100,y=100,vx=0;   //新增變數x,y,vx

void setup()
{
   size(300,300);
   background(255);          //背景設成白色,防止殘影
   img1=loadImage("img1.png");
   img2=loadImage("img2.png");
   img3=loadImage("img3.png");
   img=img1;
}
void draw(){
   image(img,x,y);            //圖片出現位置改為變數x,y位置
   x+=vx;                          //x加速度 (每次+vx的值)
}
void keyPressed()
{
   if(keyCode==RIGHT) {
     img=img2; vx=1;      //當按方向鍵右鍵時,x座標+1
   }
   else if(keyCode==LEFT) {
     img=img3; vx=-1;    //當按方向鍵左鍵時,x座標-1
   }
}
void keyReleased(){
   img=img1; 
   vx=0;                          //放開滑鼠時,x的加速度變為0,不動

}

---------------------------------------
改寫,加速度(重力)


PImage img1;
PImage img2;
PImage img3;
PImage img;
float x=100,y=100,vx=0,vy=-10;   //vy : 往上飛 

void setup()
{
   size(300,300);
   background(255);
   img1=loadImage("dora.png");    //img1改為dora圖片
   img2=loadImage("img2.png");
   img3=loadImage("img3.png");
   img=img1;
}
void draw(){
   image(img,x,y,100,100);
   x+=vx;
   y+=vy;                                       
   vy+=0.98;                                 //加度(重力)
   if(y>=200) vy=-vy*0.9;           //如果y>=200 ,會有彈跳效果
}
void keyPressed()
{
   if(keyCode==RIGHT) {
     img=img2; vx=1;
   }
   else if(keyCode==LEFT) {
     img=img3; vx=-1;
   }
}
void keyReleased(){
   img=img1; 
   vx=0;

}
















-----------------------------------------------
再改寫,簡化

PImage img1;
PImage img;
float x=100,y=100,vx=10,vy=-10;

void setup()
{
   size(400,400);
   background(255);
   img1=loadImage("dora.png");
   img=img1;
}
void draw(){
   image(img,x,y,100,100);
   x+=vx;
   y+=vy;
   vy+=0.98;
   if(y>=200) vy=-vy*0.9;
   if(x>300)  vx=-vx;         //視窗大小400-圖100,超出的話反彈
   if(x<0)    vx=-vx;           //同上,反方向
}

















沒有留言:

張貼留言