手機 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; //同上,反方向
}

沒有留言:
張貼留言