// week09_01_createFont_loadFont_textFont
size(500, 500); //大視窗
background(0); //黑色背景
textSize(50);
text("Hello", 50, 50);
PFont font = createFont("標楷體", 50);
textFont(font);
text("中文看到了", 50, 150);
PFont font2 = createFont("elffont-rock.otf", 50);
textFont(font2); //記得先把點兩下安裝字型,才能順利 createFont()
text("ㄇㄉㄈㄎ", 50, 250); // https://gadget.chienwen.net/x/text/zhuyinwen 可輸出「只有注音」
 |
| week09_01_createFont_loadFont_textFont |
// week09_02_PFont_outside_void_setup_createFont_void_draw_text
PFont font0, font, font2; // 3種字型: 英文、中文、注音文 (外面宣告,兩個函式都看得到)
void setup() {
size(500, 500); //大視窗
font0 = createFont("Algerian", 50); // Arial 或 Times New Roman
font = createFont("微軟正黑體", 50);
font2 = createFont("elffont-rock.otf", 50); //字型檔,也要拉近來哦!
// println(PFont.list()); // 印出現在能用的系統的所有的字型
}
void draw() {
background(0); //黑色背景
textSize(50);
//PFont font0 = createFont("Ariel", 50); 不能寫在裡面,建幾萬次字型電腦會亂掉
textFont(font0);
text("Hello", 50, 50);
//PFont font = createFont("標楷體", 50); 不能寫在裡面
textFont(font);
text("中文看到了", 50, 150);
//PFont font2 = createFont("elffont-rock.otf", 50); 不能寫在裡面
textFont(font2); //記得先把點兩下安裝字型,才能順利 createFont()
text("ㄇㄉㄈㄎ", 50, 250);
} |
week09_02_PFont_outside_void_setup_createFont_void_draw_text |
// week09_03_import_processing_sound_SoundFile_sound_new_SoundFile_play_loop 聲音相關 使用音樂相關的Library函式庫
// 我們自己寫「最精簡的版本」
import processing.sound.*;
SoundFile sound;
void setup(){
size(500, 500);
sound = new SoundFile(this, "In Game Music.mp3");
//sound.play(); // 播放1次
sound.loop(); // 一直迴圈播放
}
void draw(){
} |
week09_03_import_processing_sound_SoundFile_sound_new_SoundFile_play_loop |
音樂控制
// week09_04_multiple_sound_files_keyPressed_stop_play
import processing.sound.*;
SoundFile sound1, sound2, hit;
void setup(){
size(500, 500);
sound1 = new SoundFile(this, "In Game Music.mp3");
sound2 = new SoundFile(this, "Intro Song_Final.mp3");
hit = new SoundFile(this, "sword slash.mp3");
sound2.play(); // 開始時, 先播放開場的音樂
}
void draw(){
background(255);
}
void mousePressed(){
hit.play(); // mouse按下時, 揮劍的聲音
}
void keyPressed(){
if(key=='1') {
sound2.stop();
sound1.play();
}else{
sound1.stop();
sound2.play();
}
}
// week09_05_keyboard_ninja01_background_image_appleX_appleY_appleVX_appleVY_g
PImage board; // 外面宣告變數
void setup(){
size(600,400);
board = loadImage("board.png"); // 裡面修改變數
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY= -30;
void draw(){
background(board); //裡面使用變數
fill(255,0,0);
ellipse(appleX, appleY, 80, 80); // 紅色的蘋果
appleX += appleVX; // 照著運動的速度, X往右移
appleY += appleVY; // 照著運動的速度, Y也會移動
appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到「加速度」影響)
if(appleX > 600){ // 裡面應該要寫成5行, 只是截圖不太夠,就黏成一行。請分成4行哦
appleX = 100; appleY = 500; appleVX = 5; appleVY = -30; // 分號分開的4行
} // 當蘋果太右邊時, 重設新的蘋果的位置、速度
}
 |
week09_05_keyboard_ninja01_background_image_appleX_appleY_appleVX_appleVY_g |
// week09_06_keyboard_ninja03_void_randomApple
PImage board; // 外面宣告變數
void setup(){
size(600, 400);
board = loadImage("board.png"); // 裡面修改變數
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY= -30;
void randomApple(){
appleX = random(100,500);
appleY = 500;
if(appleX<300) appleVX = random(0, 8);
else appleVX = random(-8, 0);
appleVY = random(-30, -25);
}
void draw(){
background(board); //裡面使用變數
fill(255,0,0);
ellipse(appleX, appleY, 80, 80); // 紅色的蘋果
appleX += appleVX; // 照著運動的速度, X往右移
appleY += appleVY; // 照著運動的速度, Y也會移動
appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到「加速度」影響)
if(appleX > 600 || appleX < 0 || appleY > 550){
randomApple(); // 當蘋果出界時, 重設新的蘋果的位置、速度
}
}
// week09_07_keyboard_ninja04_void_keyPressed_appleKey
PImage board; // 外面宣告變數
void setup(){
size(600, 400);
board = loadImage("board.png"); // 裡面修改變數
randomApple();
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY= -30;
char appleKey; // 蘋果上面, 要秀的字母
void randomApple(){
appleX = random(100,500);
appleY = 500;
if(appleX<300) appleVX = random(0, 8);
else appleVX = random(-8, 0);
appleVY = random(-30, -25);
appleKey = (char) ('a' + int(random(26)));
}
int score = 0;
void keyPressed(){
if(key==appleKey){
score += 100; //答對加分
}else{
score -= 200; //答錯扣很多分
}
}
void draw(){
background(board); //裡面使用變數
text("Score:"+score, 400, 50);
fill(255,0,0);
ellipse(appleX, appleY, 80, 80); // 紅色的蘋果
fill(255,255,0);
textSize(50);
textAlign(CENTER,CENTER);
text(appleKey, appleX, appleY);
appleX += appleVX; // 照著運動的速度, X往右移
appleY += appleVY; // 照著運動的速度, Y也會移動
appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到「加速度」影響)
if(appleX > 600 || appleX < 0 || appleY > 550){
randomApple(); // 當蘋果出界時, 重設新的蘋果的位置、速度
}
}
 |
week09_07_keyboard_ninja04_void_keyPressed_appleKey |
// week09_08_keyboard_ninja04_start_3_2_1_go
PImage board; // 外面宣告變數
void setup() {
size(600, 400);
board = loadImage("board.png"); // 裡面修改變數
randomApple();
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY= -30;
char appleKey; // 蘋果上面, 要秀的字母
void randomApple() {
appleX = random(100, 500);
appleY = 500;
if (appleX<300) appleVX = random(0, 8);
else appleVX = random(-8, 0);
appleVY = random(-30, -25);
appleKey = (char) ('a' + int(random(26)));
}
int score = 0;
void keyPressed() {
if(state==0) state = 1; // 按任意鍵,會開始 3,2,1倒數
if(state==2){
if (key==appleKey) {
score += 100; //答對加分
} else {
score -= 20; //答錯扣少少分
}
}
}
int state = 0; //0: wait, 1: 3, 2, 1, GO, 2: Game
int countdown = 60*4; // 倒數計時3秒+GO1秒
void draw() {
background(board); //裡面使用變數
textSize(50);
textAlign(CENTER,CENTER);
fill(255,255,0);
if (state==0) text("Press Any Key to Start", 300, 200);
else if(state==1){
textSize(100);
countdown--;
if(countdown>60*3) text("3", 300, 200);
else if(countdown>60*2) text("2", 300, 200);
else if(countdown>60*1) text("1", 300, 200);
else if(countdown>0) text("GO", 300, 200);
else state = 2; //時間用完, 就跳入新的畫面
} else {
text("Score:"+score, 400, 50);
fill(255, 0, 0);
ellipse(appleX, appleY, 80, 80); // 紅色的蘋果
fill(255, 255, 0);
textSize(50);
textAlign(CENTER, CENTER);
text(appleKey, appleX, appleY);
appleX += appleVX; // 照著運動的速度, X往右移
appleY += appleVY; // 照著運動的速度, Y也會移動
appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到「加速度」影響)
if (appleX > 600 || appleX < 0 || appleY > 550) {
randomApple(); // 當蘋果出界時, 重設新的蘋果的位置、速度
}
}
}
 |
week09_08_keyboard_ninja04_start_3_2_1_go |
// week09_09_keyboard_ninja06_add_music
import processing.sound.*;
SoundFile sound1, sound2, sound3;
PImage board; // 外面宣告變數
void setup() {
size(600, 400);
board = loadImage("board.png"); // 裡面修改變數
randomApple();
sound1 = new SoundFile(this, "Intro Song_Final.mp3");
sound2 = new SoundFile(this, "Gong.mp3");
sound3 = new SoundFile(this, "In Game Music.mp3");
background(board); //先畫背景, 以免看起來像當機的灰色畫面
sound1.play();
}
float appleX = 100, appleY = 500, appleVX = 5, appleVY= -30;
char appleKey; // 蘋果上面, 要秀的字母
void randomApple() {
appleX = random(100, 500);
appleY = 500;
if (appleX<300) appleVX = random(0, 8);
else appleVX = random(-8, 0);
appleVY = random(-30, -25);
appleKey = (char) ('a' + int(random(26)));
}
int score = 0;
void keyPressed() {
if(state==0){
state = 1; // 按任意鍵,會開始 3,2,1倒數
sound1.stop();
sound2.play(); // 3
} else if(state==2){
if (key==appleKey) {
score += 100; //答對加分
} else {
score -= 20; //答錯扣少少分
}
}
}
int state = 0; //0: wait, 1: 3, 2, 1, GO, 2: Game
int countdown = 60*4; // 倒數計時3秒+GO1秒
void draw() {
background(board); //裡面使用變數
textSize(50);
textAlign(CENTER,CENTER);
fill(255,255,0);
if (state==0) text("Press any Key to Start", 300, 200);
else if(state==1){
textSize(100);
countdown--;
if(countdown%60 == 0){
sound2.stop(); // 同一個音樂關掉
sound2.play(); // 再播一次, 有點像打鼓的節奏的感覺
}
if(countdown>60*3) text("3", 300, 200);
else if(countdown>60*2) text("2", 300, 200);
else if(countdown>60*1) text("1", 300, 200);
else if(countdown>0) text("GO", 300, 200);
else {
state = 2; //時間用完, 就跳入新的畫面
sound2.stop();
sound3.loop();
}
} else {
text("Score:"+score, 400, 50);
fill(255, 0, 0);
ellipse(appleX, appleY, 80, 80); // 紅色的蘋果
fill(255, 255, 0);
textSize(50);
textAlign(CENTER, CENTER);
text(appleKey, appleX, appleY);
appleX += appleVX; // 照著運動的速度, X往右移
appleY += appleVY; // 照著運動的速度, Y也會移動
appleVY += 0.98; // 0.98 gravity 重力加速度 (移動的速度, 會受到「加速度」影響)
if (appleX > 600 || appleX < 0 || appleY > 550) {
randomApple(); // 當蘋果出界時, 重設新的蘋果的位置、速度
}
}
}
 |
week09_09_keyboard_ninja06_add_music |
沒有留言:
張貼留言