1.week08_1_int_page_if_page_0_1
1-1. 找一張圖片,並命名為「640x480.png」
PImage img;
void setup() {
size(640, 480);
img = loadImage("640x480.png");
}
int page = 0; //0:開場畫面、1:第1關、2:第2關
void draw() {
if (page == 0) {
background(0);
textSize(70);
textAlign(CENTER, CENTER); //文字置中
text("Opening", 320, 240);
}
else if (page == 1) {
background(img); //圖檔大小要與size()相同,才能變成背景
}
}
void mousePressed() {
if (page == 0) page = 1;
}
size(640, 480);
img = loadImage("640x480.png");
}
int page = 0; //0:開場畫面、1:第1關、2:第2關
void draw() {
if (page == 0) {
background(0);
textSize(70);
textAlign(CENTER, CENTER); //文字置中
text("Opening", 320, 240);
}
else if (page == 1) {
background(img); //圖檔大小要與size()相同,才能變成背景
}
}
void mousePressed() {
if (page == 0) page = 1;
}
2. week08_2_RPG_background_640_480_32_32_rect_32_32
2-1. 將剛剛 week08-1 的檔案另存新檔(因為裡面有存圖片)
PImage img;
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
}
void draw() {
background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
noFill(); //不用填色
rect(j*32, i*32, 32, 32); //小格子大小是 32*32
}
}
}
3. week08_3_RPG_PImage_createImgae_copy_save
3-1. 將剛剛 week08-2 的檔案另存新檔(因為裡面有存圖片)
PImage img;
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
}
void draw() {
background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
noFill(); //不用填色
stroke(0); //黑色的線
rect(j*32, i*32, 32, 32); //小格子大小是 32*32
}
}
stroke(255, 0, 0); //紅色的線
rect(J*32, I*32, 32,32);
}
int I = -1, J = -1;
void mouseMoved() { //void Moved()移動時,要修改I, J
I = mouseY/32; //小心x
J = mouseX/32; //小心y
}
int N = 1;
void mousePressed(){
//PImage now = createImage(32, 32, RGB);
//now.copy(img, 0, 0, 640, 480);
PImage now = createImage(32, 32, RGB);
now.copy(img, J*32, I*32, 32, 32, 0, 0, 32, 32);
now.save(N + ".png");
N++;
}
3-3. 點選不同的圖形,讓他自行生成一個個不同圖案的小圖檔
4. week08_4_RPG_2d_array_floor_map
int [][] floor = {
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 2, 1, 3, 1, 3, 4, 21, 21, 21, 4, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 1, 6, 1, 4, 4, 4, 21, 21, 21, 4, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 4, 1, 8, 5, 8, 1, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 9, 21, 1, 2, 8, 5, 1, 10, 11, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 21, 1, 1, 1, 1, 1, 21, 10, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 6, 1, 21, 21, 21, 7, 10, 21, 21, 13, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 14, 1, 1, 15, 1, 1, 1, 1, 21, 10, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 5, 16, 1, 15, 1, 21, 21, 21, 11, 17, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 1, 1, 1, 7, 1, 21, 1, 21, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 21, 1, 21, 1, 21, 1,21, 21, 23, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 18, 19, 21, 21, 21, 21, 1, 21, 1, 20, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
};
PImage img;
PImage []fimg = new PImage[40];
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
for(int i = 1; i <= 25; i++) fimg[i] = loadImage(i + ".png");
}
void draw() {
//background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
int now = floor[i][j];
image(fimg[now], j*32, i*32);
}
}
}
5.week08_5_RPG_user_move_userJ_userI_keyPressed
int [][] floor = {
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 2, 1, 3, 1, 3, 4, 21, 21, 21, 4, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 1, 6, 1, 4, 4, 4, 21, 21, 21, 4, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 4, 1, 8, 5, 8, 1, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 9, 21, 1, 2, 8, 5, 1, 10, 11, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 21, 1, 1, 1, 1, 1, 21, 10, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 6, 1, 21, 21, 21, 7, 10, 21, 21, 13, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 14, 1, 1, 15, 1, 1, 1, 1, 21, 10, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 5, 16, 1, 15, 1, 21, 21, 21, 11, 17, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 1, 1, 1, 7, 1, 21, 1, 21, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 21, 1, 21, 1, 21, 1,21, 21, 21, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 18, 19, 21, 21, 21, 21, 1, 21, 21, 20, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
};
PImage img, user;
PImage []fimg = new PImage[40];
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
user = loadImage("23.png"); //使用者 = 勇者
for(int i = 1; i <= 25; i++) fimg[i] = loadImage(i + ".png");
}
int userI = 12, userJ = 15;
void draw() {
//background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
int now = floor[i][j];
image(fimg[now], j*32, i*32);
}
}
image(user, userJ*32, userI*32);
}
void keyPressed(){
if(keyCode == RIGHT) userJ++;
if(keyCode == LEFT) userJ--;
if(keyCode == UP) userI--;
if(keyCode == DOWN) userI++;
}
6.week08_6_RPG_will_detection
int [][] floor = {
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 2, 1, 3, 1, 3, 4, 21, 21, 21, 4, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 1, 6, 1, 4, 4, 4, 21, 21, 21, 4, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 4, 1, 8, 5, 8, 1, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 9, 21, 1, 2, 8, 5, 1, 10, 11, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 21, 1, 1, 1, 1, 1, 21, 10, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 6, 1, 21, 21, 21, 7, 10, 21, 21, 13, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 14, 1, 1, 15, 1, 1, 1, 1, 21, 10, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 5, 16, 1, 15, 1, 21, 21, 21, 11, 17, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 1, 1, 1, 7, 1, 21, 1, 21, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 21, 1, 21, 1, 21, 1, 21, 21, 23, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 18, 19, 21, 21, 21, 21, 1, 21, 1, 20, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
};
PImage img, user;
PImage []fimg = new PImage[40];
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
user = loadImage("23.png"); //使用者 = 勇者
for (int i = 1; i <= 25; i++) fimg[i] = loadImage(i + ".png");
}
int userI = 11, userJ = 10;
void draw() {
//background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
int now = floor[i][j];
image(fimg[now], j*32, i*32);
}
}
image(user, userJ*32, userI*32);
}
void keyPressed() {
int newI = userI, newJ = userJ; //新的可能的位置
if (keyCode == RIGHT) newJ++;
if (keyCode == LEFT) newJ--;
if (keyCode == UP) newI--;
if (keyCode == DOWN) newI++;
if (floor[newI][newJ] != 22 && floor[newI][newJ] != 1) { //不是石頭牆,也不是木牆,才能走過去
userI = newI;
userJ = newJ;
}
}
7. week08_7_RPG_eat_good
int [][] floor = {
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 2, 1, 3, 1, 3, 4, 21, 21, 21, 4, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 1, 6, 1, 4, 4, 4, 21, 21, 21, 4, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 4, 1, 8, 5, 8, 1, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 9, 21, 1, 2, 8, 5, 1, 10, 11, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 21, 1, 1, 1, 1, 1, 21, 10, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 6, 1, 21, 21, 21, 7, 10, 21, 21, 13, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 14, 1, 1, 15, 1, 1, 1, 1, 21, 10, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 5, 16, 1, 15, 1, 21, 21, 21, 11, 17, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 1, 1, 1, 7, 1, 21, 1, 21, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 21, 1, 21, 1, 21, 1,21, 21, 21, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 18, 19, 21, 21, 21, 21, 1, 21, 21, 20, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
};
PImage img, user;
PImage []fimg = new PImage[40];
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
user = loadImage("23.png"); //使用者 = 勇者
for (int i = 1; i <= 25; i++) fimg[i] = loadImage(i + ".png");
}
int userI = 12, userJ = 15;
void draw() {
//background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
int now = floor[i][j];
image(fimg[now], j*32, i*32);
}
}
image(user, userJ*32, userI*32);
if(gameOver) background(0, 255, 0);
}
boolean gameOver = false;
void keyPressed() {
int newI = userI, newJ = userJ; //新的可能的位置
if (keyCode == RIGHT) newJ++;
if (keyCode == LEFT) newJ--;
if (keyCode == UP) newI--;
if (keyCode == DOWN) newI++;
if (floor[newI][newJ] != 22 && floor[newI][newJ] != 1) { //不是石頭牆,也不是木牆,才能走過去
userI = newI;
userJ = newJ;
if(floor[userI][userJ] == 18) gameOver = true; //走道樓梯上,結束囉
floor[userI][userJ] = 21;
}
}
8.week08_8_RPG_show_info
8-1. 將
int [][] floor = {
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 2, 1, 3, 1, 3, 4, 21, 21, 21, 4, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 1, 6, 1, 4, 4, 4, 21, 21, 21, 4, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 4, 1, 8, 5, 8, 1, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 9, 21, 1, 2, 8, 5, 1, 10, 11, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 21, 1, 1, 1, 1, 1, 21, 10, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 6, 1, 21, 21, 21, 7, 10, 21, 21, 13, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 14, 1, 1, 15, 1, 1, 1, 1, 21, 10, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 5, 16, 1, 15, 1, 21, 21, 21, 11, 17, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 1, 1, 1, 7, 1, 21, 1, 21, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 21, 1, 21, 1, 21, 1,21, 21, 21, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 18, 19, 21, 21, 21, 21, 1, 21, 21, 20, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
};
PImage img, user;
PImage []fimg = new PImage[40];
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
user = loadImage("23.png"); //使用者 = 勇者
for (int i = 1; i <= 25; i++) fimg[i] = loadImage(i + ".png");
}
int userI = 12, userJ = 15;
void draw() {
//background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
int now = floor[i][j];
image(fimg[now], j*32, i*32);
}
}
image(user, 16, 16);
textSize(30);
text("Level:" + level, 16, 90);
textSize(20);
text("Level: " + live, 16, 140);
text("Attack: " + attack, 16, 170);
text("Defense: " + defense, 16, 200);
text("Magic: " + coin, 16, 230);
text("Exp: " + exp, 16, 260);
text("Coins: "+ coin, 16, 290);
image(user, userJ*32, userI*32);
if(gameOver) background(0, 255, 0);
}
int level = 1, live = 2963, attack = 14, defense = 16, magic = 10, exp = 72, coin = 72;
boolean gameOver = false;
void keyPressed() {
int newI = userI, newJ = userJ; //新的可能的位置
if (keyCode == RIGHT) newJ++;
if (keyCode == LEFT) newJ--;
if (keyCode == UP) newI--;
if (keyCode == DOWN) newI++;
if (floor[newI][newJ] != 22 && floor[newI][newJ] != 1) { //不是石頭牆,也不是木牆,才能走過去
userI = newI;
userJ = newJ;
if(floor[userI][userJ] == 18) gameOver = true; //走道樓梯上,結束囉
floor[userI][userJ] = 21;
}
}
9.week08_9_RPG_attack_mage
int [][] floor = {
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 2, 1, 3, 1, 3, 4, 21, 21, 21, 4, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 1, 6, 1, 4, 4, 4, 21, 21, 21, 4, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 4, 1, 8, 5, 8, 1, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 9, 21, 1, 2, 8, 5, 1, 10, 11, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 7, 1, 21, 1, 1, 1, 1, 1, 21, 10, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 6, 1, 21, 21, 21, 7, 10, 21, 21, 13, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 14, 1, 1, 15, 1, 1, 1, 1, 21, 10, 10, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 5, 16, 1, 15, 1, 21, 21, 21, 11, 17, 5, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 1, 1, 1, 7, 1, 21, 1, 21, 1, 9, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 21, 21, 1, 21, 1, 21, 1, 21, 21, 21, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 18, 19, 21, 21, 21, 21, 1, 21, 21, 20, 1, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
{25, 22, 22, 22, 24, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24},
};
PImage img, user;
PImage []fimg = new PImage[40];
void setup() {
size(640, 480);
//15格 = 480,480/15 = 32,方格長32
img = loadImage("640x480.png");
user = loadImage("23.png"); //使用者 = 勇者
for (int i = 1; i <= 25; i++) fimg[i] = loadImage(i + ".png");
}
int userI = 12, userJ = 15;
void draw() {
//background(img);
for (int i = 0; i < 15; i++) { //高度480 對應y座標(左手i)
for (int j =0; j < 20; j++) { //寬度640 對應x座標(右手j)
int now = floor[i][j];
image(fimg[now], j*32, i*32);
}
}
image(user, 16, 16);
textSize(30);
text("Level:" + level, 16, 90);
textSize(20);
text("Level: " + hp, 16, 140);
text("Attack: " + attack, 16, 170);
text("Defense: " + defense, 16, 200);
text("Magic: " + coin, 16, 230);
text("Exp: " + exp, 16, 260);
text("Coins: "+ coin, 16, 290);
image(user, userJ*32, userI*32);
if (gameOver == 1) background(0, 255, 0);
if (gameOver == 2)background(255, 0, 0);
}
int level = 1, hp = 2963, attack = 14, defense = 16, magic = 10, exp = 72, coin = 72;
int gameOver = 0;
void keyPressed() {
int newI = userI, newJ = userJ; //新的可能的位置
if (keyCode == RIGHT) newJ++;
if (keyCode == LEFT) newJ--;
if (keyCode == UP) newI--;
if (keyCode == DOWN) newI++;
if (floor[newI][newJ] == 16 || floor[newI][newJ] == 10 || floor[newI][newJ] == 18 || floor[newI][newJ] == 4) { //遇到怪物
if (hp-10 <= 0 )gameOver = 2;
else {
hp -= 10; //扣你的血
coin += 10; //加錢
exp += 1; //加經驗值
userI = newI;
userJ = newJ;
floor[userI][userJ] = 21;
}
} else if (floor[newI][newJ] != 22 && floor[newI][newJ] != 1) { //不是石頭牆,也不是木牆,才能走過去
userI = newI;
userJ = newJ;
if (floor[userI][userJ] == 18) gameOver = 1; //走道樓梯上,結束囉
floor[userI][userJ] = 21;
}
}













沒有留言:
張貼留言