就只有做出點一個方個會有紅點 ,然後在紅點的一定範圍內按a會可以再點一點,之後可
能就是把紅點做成炸彈超人的貼圖,另一個就做成炸彈。
不過因為打算跟黃同學一組,所以其中可能就以他的作品為主,再加以修改吧
int sx=50,sy=50;//上限
int stx,sty,enx,eny;//起始點 終點
float pencostset=0.5;//
float pencost=0;
float fillrate=0.2;
float hmult=1.15;
float maxpert=0;
boolean finding,findingsolution,d1=true,pressA=true;
int gx,gy,rx,ry;
float fx;
float fy;
void setup()
{
size(800,800);//地圖大小
smooth();//平滑
sx=800>>6;
sy=800>>6;
stx=0;
sty=0;
fx=800/sx;
fy=800/sy;
enx=sx-1;
eny=sy-1;
}
void draw()
{
for(int x=0;x<sx;x++)
for(int y=0;y<sy;y++)
{
strokeWeight(1);
stroke(0);
if(x*fx<mouseX&&mouseX<(x+1)*fx)
if(y*fy<mouseY&&mouseY<(y+1)*fy)
{
if(mousePressed&&keyPressed&&key =='a'){
rx=x; ry=y;
}
if(mousePressed&&!keyPressed){
gx=x; gy=y;
}
}
if(mousePressed&&rx==x&&ry==y&&!(gx==x&&gy==y)&&keyPressed&&(key =='a'||key =='A')
&&(pow(gx-rx,2)+pow(gy-ry,2)<=pow(5,2)))fill(255,0,0);//丟炸彈的位置
else if(/*mousePressed&&*/gx==x&&gy==y/*&!keyPressed*/)fill(0,255,0);//人的位置
else fill(255,255,255);
rect(x*fx,y*fy,fx,fy);
}
}
2012年11月13日 星期二
2012年11月12日 星期一
Week08,HW08
1.上周是完成之前那個作業的背景還有人物放置,然後跟著線跑。
2.今天計畫像在另外弄一個新的遊戲,礙於實力與時間上(期中考)的問題,想做一個簡單易懂的小遊戲今天跟組員李育軒同學討論了一下,我們分別提出兩個小遊戲
(1) 簡易的飛機射擊獲取分數的遊戲
構思是先放好最基本的背景----->然後畫飛機跟掉落物----->希望按鍵盤能左右移動(這部分可能要用請教一下老師或同學)----->掉落物隨機掉落----->按射擊鍵能射擊----->秀出GAMEOVER字樣計算分數
(2) 判斷顏色的小遊戲
構思是基本的白色背景----->寫上"紅"但是是白色的底色的素材----->玩家可以選擇顏色的框框----->隨機出現字樣素材------>選對的顏色字樣------>計算分數
3.目前遇到的問題
(a)音樂放置
(b)背景設定
(c)隨時間增加成正比的計分方式
(d)秀出一開始玩法的字樣
(e)秀出結束字樣
2.今天計畫像在另外弄一個新的遊戲,礙於實力與時間上(期中考)的問題,想做一個簡單易懂的小遊戲今天跟組員李育軒同學討論了一下,我們分別提出兩個小遊戲
(1) 簡易的飛機射擊獲取分數的遊戲
構思是先放好最基本的背景----->然後畫飛機跟掉落物----->希望按鍵盤能左右移動(這部分可能要用請教一下老師或同學)----->掉落物隨機掉落----->按射擊鍵能射擊----->秀出GAMEOVER字樣計算分數
(2) 判斷顏色的小遊戲
構思是基本的白色背景----->寫上"紅"但是是白色的底色的素材----->玩家可以選擇顏色的框框----->隨機出現字樣素材------>選對的顏色字樣------>計算分數
3.目前遇到的問題
(a)音樂放置
(b)背景設定
(c)隨時間增加成正比的計分方式
(d)秀出一開始玩法的字樣
(e)秀出結束字樣
Week08,HW08
1.
你之前完成了什麼把所有的素材都找齊
並計算出大小(位置)
2. 你今天計畫完成什麼
查出所有相對應的程式
但發現有很多程式太複雜
---------------------------
找出第二個遊戲(海綿寶寶-大家來找碴)的原件
以及相對應的程式
3.可能會遇到的問題
所以小組討論完後決定找另一個遊戲
此遊戲為大家來找碴
並設定主題是海綿寶寶
並計算出大小(位置)
2. 你今天計畫完成什麼
查出所有相對應的程式
但發現有很多程式太複雜
---------------------------
找出第二個遊戲(海綿寶寶-大家來找碴)的原件
以及相對應的程式
3.可能會遇到的問題
所以小組討論完後決定找另一個遊戲
此遊戲為大家來找碴
並設定主題是海綿寶寶
Week08, HW08
(1) 之前完成的進度
這禮拜改了主題 改做talking tom貓咪的遊戲
(2) 第 8 周預期完成進度
圖檔製作好
(3) 可能會遇到的問題及可能的解決方法
聲音 事件判斷
(4) 期中作品進度目前程式碼
PImage img1,img2,img3,img4;
import ddf.minim.*;
AudioPlayer player ;
Minim minim;
void setup(){
size(768,1024);
img1=loadImage("background.jpg");
image(img1, 0, 0);
img2=loadImage("food.jpg");
image(img2, 0, 874);
img3=loadImage("toy.jpg");
image(img3, 618, 874);
img4=loadImage("touch.jpg");
image(img4, 618, 725);
minim=new Minim(this);
}
void draw(){
if(mouseX>=0&&mouseX<=150&&mouseY>=874&&mouseY<=1024) player=minim.loadFile("file.mp3", 2048);
player.play();
}
這禮拜改了主題 改做talking tom貓咪的遊戲
(2) 第 8 周預期完成進度
圖檔製作好
(3) 可能會遇到的問題及可能的解決方法
聲音 事件判斷
(4) 期中作品進度目前程式碼
PImage img1,img2,img3,img4;
import ddf.minim.*;
AudioPlayer player ;
Minim minim;
void setup(){
size(768,1024);
img1=loadImage("background.jpg");
image(img1, 0, 0);
img2=loadImage("food.jpg");
image(img2, 0, 874);
img3=loadImage("toy.jpg");
image(img3, 618, 874);
img4=loadImage("touch.jpg");
image(img4, 618, 725);
minim=new Minim(this);
}
void draw(){
if(mouseX>=0&&mouseX<=150&&mouseY>=874&&mouseY<=1024) player=minim.loadFile("file.mp3", 2048);
player.play();
}
Week08, HW08
1.1
你之前完成了什麼
呃...踩地雷的基本功能
1.2 你今天計畫完成什麼
我想做出排行榜的功能,會記錄前三位時間最短的時間
1.3可能會遇到的問題
檔案讀取和儲存的功能要踹一下才知道怎麼用
呃...踩地雷的基本功能
1.2 你今天計畫完成什麼
我想做出排行榜的功能,會記錄前三位時間最短的時間
1.3可能會遇到的問題
檔案讀取和儲存的功能要踹一下才知道怎麼用
2012年11月11日 星期日
Week08, HW08
1. 請寫下以下資料:
1.1. 你之前完成了什麼?
素材 關卡切換 腳色發射
1.2. 你今天計畫要做什麼?
音樂播放
背景的移動&重復
返回主畫面&遊戲結束
1.3. 可能會遇到的問題... (及可能的解決方法)
記憶體一直爆掉
返回主畫面設定不能回到初值
遊戲結束的判定
2. 請把你目前期中作品的進度貼出來
2012年10月30日 星期二
98163021,張耀璇,HW08,Week08
1.1我們之前完成了人物的左右移動,並且碰到視窗的最邊緣時,會自己更換方向,並且繼續的移動,這是上上禮拜的進度,那上禮拜我們做到的是,利用鍵盤的按鍵可以控制人物往上移動,進行跳躍的動作。
1.2今天的計畫是,如何人物碰到跳躍的板子下方,即會跳不上去,還有場景會一直跑不同的東西,地板會隨機擺放以及地板的數量。
1.3可能會遇到的問題是如地板會隨機,有時候板子距離太遙遠,人物的跳躍可能跳不到,或許要控制在一定的範圍內,還有場景的移動,必須搭配人物的移動以等比例的方式移動,不然背景看起來會非常的不協調,可能要解決的是人物以及背景的位置必須搭配好,否則會很奇怪。
2. 我們目前的進度是把背景的比例用好,然後至於地板的隨機部分,可能會再想解決的方法。
今日進度:
1.2今天的計畫是,如何人物碰到跳躍的板子下方,即會跳不上去,還有場景會一直跑不同的東西,地板會隨機擺放以及地板的數量。
1.3可能會遇到的問題是如地板會隨機,有時候板子距離太遙遠,人物的跳躍可能跳不到,或許要控制在一定的範圍內,還有場景的移動,必須搭配人物的移動以等比例的方式移動,不然背景看起來會非常的不協調,可能要解決的是人物以及背景的位置必須搭配好,否則會很奇怪。
2. 我們目前的進度是把背景的比例用好,然後至於地板的隨機部分,可能會再想解決的方法。
今日進度:
int finnx=0,finny=0;
int dx=5,bgX=0,bgY=0,jump;
PImage finn1,finn2,jump1,jump2,sky,grass;
int dx=5,bgX=0,bgY=0,jump;
PImage finn1,finn2,jump1,jump2,sky,grass;
void setup(){
size(600,800);
finn1 = loadImage("Finn_right.png");
finn2 = loadImage("Finn_left.png");
jump1 = loadImage("jump_right.png");
jump2 = loadImage("jump_left.png");
sky = loadImage("sky.jpg");
grass = loadImage("grass.png");
}
void draw(){
background (239,228,176);
image (sky,0,0,600,630);
image (grass,0,500,600,300);
translate (0,500);
if (finnx>500 || finnx<0) dx=-dx;
finnx+=dx;
if(dx>0) image(finn1,finnx,finny,100,150);
else image(finn2,finnx,finny,100,150);
/*if(jump>0){
jump=jump-10;
finny-=10;
}
if(finny<420){
finny+=5;
}*/
}
/*void keyPressed(){
if(key==' '){
jump=200;
}
}
size(600,800);
finn1 = loadImage("Finn_right.png");
finn2 = loadImage("Finn_left.png");
jump1 = loadImage("jump_right.png");
jump2 = loadImage("jump_left.png");
sky = loadImage("sky.jpg");
grass = loadImage("grass.png");
}
void draw(){
background (239,228,176);
image (sky,0,0,600,630);
image (grass,0,500,600,300);
translate (0,500);
if (finnx>500 || finnx<0) dx=-dx;
finnx+=dx;
if(dx>0) image(finn1,finnx,finny,100,150);
else image(finn2,finnx,finny,100,150);
/*if(jump>0){
jump=jump-10;
finny-=10;
}
if(finny<420){
finny+=5;
}*/
}
/*void keyPressed(){
if(key==' '){
jump=200;
}
}
HW08,week08
1. 請寫下以下資料:
1.1. 你之前完成了什麼?
製作遊戲所需要的素材,例如痘痘,和爆掉的痘痘。
1.2. 你今天計畫要做什麼?
讓痘痘越來越成熟,用滑鼠點擊就會爆開。
1.3. 可能會遇到的問題... (及可能的解決方法)
(1)痘痘漸層的顏色是從黑色開始變紅,想要讓他從膚色開始。
(2)現在點擊痘痘只會爆開一下子就變回原本痘痘的圖,想要讓他可以一直停在爆開痘痘的圖。
2. 請把你目前期中作品的進度貼出來
1.1. 你之前完成了什麼?
製作遊戲所需要的素材,例如痘痘,和爆掉的痘痘。
1.2. 你今天計畫要做什麼?
讓痘痘越來越成熟,用滑鼠點擊就會爆開。
1.3. 可能會遇到的問題... (及可能的解決方法)
(1)痘痘漸層的顏色是從黑色開始變紅,想要讓他從膚色開始。
(2)現在點擊痘痘只會爆開一下子就變回原本痘痘的圖,想要讓他可以一直停在爆開痘痘的圖。
2. 請把你目前期中作品的進度貼出來
Week08,HW08
1. 請寫下以下資料:
1.1. 你之前完成了什麼?
1.2. 你今天計畫要做什麼?
1.3. 可能會遇到的問題... (及可能的解決方法)
2. 請把你目前期中作品的進度貼出來
1.1. 你之前完成了什麼?
我們之前完成了烤章魚燒的烤盤。
我們今天計畫完成
(1)切換畫面(從一開始的畫面→點選"開始遊戲" → 切換到烤章魚燒烤盤的畫面)。
(2)工具列(麵糊、叉子、刷子、手)。
(3)章魚燒可以成功變色(漸層變色,變色是用計時器來控制)
白色 → 黃色(麵糊開始變色)
→ 褐色(章魚燒成功的顏色)
→ 黑色(章魚燒失敗的顏色,焦掉)。
(4)用小烏龜的移動代表時間的倒數。
我們在麵糊變色遇到了很大的困難,花了我們很多時間去調整RGB數值,但是都沒有很
成功。
後來我們請教助教,顏色終於比較像了,在助教的幫忙下,有了計時器和漸層的功能。
2. 請把你目前期中作品的進度貼出來
![]() | ||||
一開始的畫面
|
Week08,HW08
8-1 上週完成了進度:
(1) 遊戲登入畫面按"開始遊戲"會進入遊戲畫面。
(2) 調整材質大小以及去背。
8-2 本週計畫進度:
遊戲畫面
(1) 酒瓶(目標物)來回移動
(2) 球棒可依滑鼠移動而揮動
(3) 投手圖片、球圖片放上遊戲畫面
(4) 球棒打擊到球飛處去的角度
8-3 可能會遇到的問題:
(1) 球棒打擊到球飛出去的角度(向量)
(2) 酒瓶來回移動(在x軸)
(3) 球棒揮動(T-移動,R,T-軸心)
(1) 遊戲登入畫面按"開始遊戲"會進入遊戲畫面。
(2) 調整材質大小以及去背。
8-2 本週計畫進度:
遊戲畫面
(1) 酒瓶(目標物)來回移動
(2) 球棒可依滑鼠移動而揮動
(3) 投手圖片、球圖片放上遊戲畫面
(4) 球棒打擊到球飛處去的角度
8-3 可能會遇到的問題:
(1) 球棒打擊到球飛出去的角度(向量)
(2) 酒瓶來回移動(在x軸)
(3) 球棒揮動(T-移動,R,T-軸心)
week08 , hw08
1.1. 你之前完成了什麼?
簡陋的圖樣和不會移動的橫槓
1.2. 你今天計畫要做什麼?
美化整個圖樣和想辦法讓橫槓和球移動
還有分數的計算
1.3. 可能會遇到的問題... (及可能的解決方法)
依然不會動或跑不出來
2. 請把你目前期中作品的進度貼出來
簡陋的圖樣和不會移動的橫槓
1.2. 你今天計畫要做什麼?
美化整個圖樣和想辦法讓橫槓和球移動
還有分數的計算
1.3. 可能會遇到的問題... (及可能的解決方法)
依然不會動或跑不出來
2. 請把你目前期中作品的進度貼出來
加強了整個遊戲的視覺辨識度
以及橫槓的大小,但是只有球能動
橫槓和分數依舊無動靜ㄏㄏ
WEEK HW08
boolean a1=false;
boolean a12=false;
boolean s1=false;
boolean s12=false;
boolean d1=false;
boolean f1=false;
boolean z1=false;
boolean x1=false;
boolean c1=false;
boolean v1=false;
boolean y1=false;
boolean u1=false;
boolean i1=false;
boolean o1=false;
boolean h1=false;
boolean j1=false;
boolean k1=false;
boolean l1=false;
boolean q1=false;
boolean take=false;
int s123=0;
int sice=0;
int siceten=0;
int sicehun=0;
int m=0;
void setup(){
size(600,650);
}
void sicetake()//////////////////// 計分判斷
{
if(sice<10)
{
sice++;
}
if(sice==10)
{
sice=0;
if(siceten<10)
{
siceten++;
}
if(siceten==10)
{
siceten=0;
if(sicehun<10)
{
sicehun++;
}
}
}
}
void draw()
{
if(s1==true&&s12==true)
{
sicetake();
s12=false;
}
else if(s1==true&&s12==false)
{
}
background(255);
int m = millis()/1000;
if(m==3)
{
a1=true;
s1=true;
}
else if(m==4)
{
a1=false;
s1=false;
}
if(m==7)
{
a1=true;
s1=true;
}
else if(m==8)
{
a1=false;
s1=false;
}
fill(255);
/////////////////////////////////////////////第一排
rect(50, 100, 100, 100);
rect(180, 100, 100, 100);
rect(310, 100, 100, 100);
rect(440, 100, 100, 100);
///////////////////////////////////////////////第二排
rect(50, 230, 100, 100);
rect(180, 230, 100, 100);
rect(310, 230, 100, 100);
rect(440, 230, 100, 100);
//////////////////////////////////////////////第三排
rect(50, 360, 100, 100);
rect(180, 360, 100, 100);
rect(310, 360, 100, 100);
rect(440, 360, 100, 100);
//////////////////////////////////////////////第四排
rect(50, 490, 100, 100);
rect(180, 490, 100, 100);
rect(310, 490, 100, 100);
rect(440, 490, 100, 100);
/////////////////////////////////////////////////////////
if(a1)
{
fill(0);
rect(50, 100, 100, 100);
}
if(s1)
{
fill(0);
rect(180, 100, 100, 100);
}
if(d1)
{
fill(0);
rect(310, 100, 100, 100);
}
if(f1)
{
fill(0);
rect(440, 100, 100, 100);
}
/////////////////////////////////////////////////////第一排
if (z1)
{
fill(0);
rect(50, 230, 100, 100);
}
if(x1)
{
fill(0);
rect(180, 230, 100, 100);
}
if(c1)
{
fill(0);
rect(310, 230, 100, 100);
}
if(v1)
{
fill(0);
rect(440, 230, 100, 100);
}
//////////////////////////////////////////第二排
if (y1)
{
fill(0);
rect(50, 360, 100, 100);
}
if(u1)
{
fill(0);
rect(180, 360, 100, 100);
}
if(i1)
{
fill(0);
rect(310, 360, 100, 100);
}
if(o1)
{
fill(0);
rect(440, 360, 100, 100);
}
/////////////////////////////////////////////////////////////第三排
if (h1)
{
fill(0);
rect(50, 490, 100, 100);
}
if(j1)
{
fill(0);
rect(180, 490, 100, 100);
}
if(k1)
{
fill(0);
rect(310, 490, 100, 100);
}
if(l1)
{
fill(0);
rect(440, 490, 100, 100);
}
////////////////////////////////////////////////////////////////第四排////////////X+50.Y+80
if(sice==1)
{
fill(0,0,0,120);
rect(450, 280, 20, 60);
rect(450, 360, 20, 60);
}
if(siceten==1)
{
fill(0,0,0,120);
rect(300, 280, 20, 60);
rect(300, 360, 20, 60);
}
if(sicehun==1)
{
fill(0,0,0,120);
rect(150, 280, 20, 60);
rect(150, 360, 20, 60);
}
if(siceten==2)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(220, 360, 20, 60);
rect(240,420,60,20);
}
if(sicehun==2)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(70, 360, 20, 60);
rect(90,420,60,20);
}
if(sice==2)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(370, 360, 20, 60);
rect(390,420,60,20);
}
if(sice==3)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
}
if(siceten==3)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
}
if(sicehun==3)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
}
if(sice==4)
{
fill(0,0,0,120);
rect(370, 280, 20, 60);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
}
if(siceten==4)
{
fill(0,0,0,120);
rect(220, 280, 20, 60);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
}
if(sicehun==4)
{
fill(0,0,0,120);
rect(70, 280, 20, 60);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
}
if(sice==5)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(370, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
}
if(siceten==5)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(220, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
}
if(sicehun==5)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(70, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
}
if(sice==6)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
rect(370, 360, 20, 60);
}
if(siceten==6)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
rect(220, 360, 20, 60);
}
if(sicehun==6)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
rect(70, 360, 20, 60);
}
if(sice==7)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(450, 360, 20, 60);
}
if(siceten==7)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(300, 360, 20, 60);
}
if(sicehun==7)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(150, 360, 20, 60);
}
if(sice==8)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
rect(370, 360, 20, 60);
rect(370, 280, 20, 60);
}
if(siceten==8)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
rect(220, 360, 20, 60);
rect(220, 280, 20, 60);
}
if(sicehun==8)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
rect(70, 360, 20, 60);
rect(70, 280, 20, 60);
}
if(sice==9)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
// rect(320, 280, 20, 60);
rect(370, 280, 20, 60);
}
if(siceten==9)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
// rect(320, 280, 20, 60);
rect(220, 280, 20, 60);
}
if(sicehun==9)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
// rect(320, 280, 20, 60);
rect(70, 280, 20, 60);
}
if(sice==0)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
// rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
rect(370, 360, 20, 60);
rect(370, 280, 20, 60);
}
if(siceten==0)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
// rect(390,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
rect(220, 360, 20, 60);
rect(220, 280, 20, 60);
}
if(sicehun==0)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
// rect(390,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
rect(70, 360, 20, 60);
rect(70, 280, 20, 60);
}
}
void keyPressed(){
if(key=='a'|| key == 'A'){
a12=true;
}
else if(key=='s'|| key == 'S'){
s12=true;
s123=1;
}
else if(key=='d'|| key == 'D')
{
d1=true;
}
else if(key=='f'|| key == 'F')
{
f1=true;
}
if(key=='z'|| key == 'Z'){
z1=true;
}
else if(key=='x'|| key == 'X'){
x1=true;
}
else if(key=='c'|| key == 'C')
{
c1=true;
}
else if(key=='v'|| key == 'V')
{
v1=true;
}
if(key=='y'|| key == 'Y'){
y1=true;
}
else if(key=='u'|| key == 'U'){
u1=true;
}
else if(key=='i'|| key == 'I')
{
i1=true;
}
else if(key=='o'|| key == 'O')
{
o1=true;
}
if(key=='h'|| key == 'H'){
h1=true;
}
else if(key=='j'|| key == 'J'){
j1=true;
}
else if(key=='k'|| key == 'K')
{
k1=true;
}
else if(key=='l'|| key == 'L')
{
l1=true;
}
else if(key=='q'|| key == 'Q')/////////////////////////////////開始建
{
q1=true;
}
}
void keyReleased(){
if(key=='a'|| key == 'A')
{
a12=false;
if(sice<10)
{
sice++;
}
if(sice==10)
{
sice=0;
if(siceten<10)
{
siceten++;
}
if(siceten==10)
{
siceten=0;
if(sicehun<10)
{
sicehun++;
}
}
}
}
if(key=='s'|| key == 'S'){
s12=false;
s123=0;
}
if(key=='d'|| key == 'D')
{
d1=false;
}
else if(key=='f'|| key == 'F')
{
f1=false;
}
else if(key=='z'|| key == 'Z')
{
z1=false;
}
if(key=='x'|| key == 'X'){
x1=false;
}
if(key=='c'|| key == 'C')
{
c1=false;
}
else if(key=='v'|| key == 'V')
{
v1=false;
}
if(key=='y'|| key == 'Y'){
y1=false;
}
else if(key=='u'|| key == 'U'){
u1=false;
}
else if(key=='i'|| key == 'I')
{
i1=false;
}
else if(key=='o'|| key == 'O')
{
o1=false;
}
if(key=='h'|| key == 'H'){
h1=false;
}
else if(key=='j'|| key == 'J'){
j1=false;
}
else if(key=='k'|| key == 'K')
{
k1=false;
}
else if(key=='l'|| key == 'L')
{
l1=false;
}
else if(key=='q'|| key == 'Q')/////////////////////////開始建
{
q1=false;
}
}
加入時間自動編輯
加入計分判斷
boolean a12=false;
boolean s1=false;
boolean s12=false;
boolean d1=false;
boolean f1=false;
boolean z1=false;
boolean x1=false;
boolean c1=false;
boolean v1=false;
boolean y1=false;
boolean u1=false;
boolean i1=false;
boolean o1=false;
boolean h1=false;
boolean j1=false;
boolean k1=false;
boolean l1=false;
boolean q1=false;
boolean take=false;
int s123=0;
int sice=0;
int siceten=0;
int sicehun=0;
int m=0;
void setup(){
size(600,650);
}
void sicetake()//////////////////// 計分判斷
{
if(sice<10)
{
sice++;
}
if(sice==10)
{
sice=0;
if(siceten<10)
{
siceten++;
}
if(siceten==10)
{
siceten=0;
if(sicehun<10)
{
sicehun++;
}
}
}
}
void draw()
{
if(s1==true&&s12==true)
{
sicetake();
s12=false;
}
else if(s1==true&&s12==false)
{
}
background(255);
int m = millis()/1000;
if(m==3)
{
a1=true;
s1=true;
}
else if(m==4)
{
a1=false;
s1=false;
}
if(m==7)
{
a1=true;
s1=true;
}
else if(m==8)
{
a1=false;
s1=false;
}
fill(255);
/////////////////////////////////////////////第一排
rect(50, 100, 100, 100);
rect(180, 100, 100, 100);
rect(310, 100, 100, 100);
rect(440, 100, 100, 100);
///////////////////////////////////////////////第二排
rect(50, 230, 100, 100);
rect(180, 230, 100, 100);
rect(310, 230, 100, 100);
rect(440, 230, 100, 100);
//////////////////////////////////////////////第三排
rect(50, 360, 100, 100);
rect(180, 360, 100, 100);
rect(310, 360, 100, 100);
rect(440, 360, 100, 100);
//////////////////////////////////////////////第四排
rect(50, 490, 100, 100);
rect(180, 490, 100, 100);
rect(310, 490, 100, 100);
rect(440, 490, 100, 100);
/////////////////////////////////////////////////////////
if(a1)
{
fill(0);
rect(50, 100, 100, 100);
}
if(s1)
{
fill(0);
rect(180, 100, 100, 100);
}
if(d1)
{
fill(0);
rect(310, 100, 100, 100);
}
if(f1)
{
fill(0);
rect(440, 100, 100, 100);
}
/////////////////////////////////////////////////////第一排
if (z1)
{
fill(0);
rect(50, 230, 100, 100);
}
if(x1)
{
fill(0);
rect(180, 230, 100, 100);
}
if(c1)
{
fill(0);
rect(310, 230, 100, 100);
}
if(v1)
{
fill(0);
rect(440, 230, 100, 100);
}
//////////////////////////////////////////第二排
if (y1)
{
fill(0);
rect(50, 360, 100, 100);
}
if(u1)
{
fill(0);
rect(180, 360, 100, 100);
}
if(i1)
{
fill(0);
rect(310, 360, 100, 100);
}
if(o1)
{
fill(0);
rect(440, 360, 100, 100);
}
/////////////////////////////////////////////////////////////第三排
if (h1)
{
fill(0);
rect(50, 490, 100, 100);
}
if(j1)
{
fill(0);
rect(180, 490, 100, 100);
}
if(k1)
{
fill(0);
rect(310, 490, 100, 100);
}
if(l1)
{
fill(0);
rect(440, 490, 100, 100);
}
////////////////////////////////////////////////////////////////第四排////////////X+50.Y+80
if(sice==1)
{
fill(0,0,0,120);
rect(450, 280, 20, 60);
rect(450, 360, 20, 60);
}
if(siceten==1)
{
fill(0,0,0,120);
rect(300, 280, 20, 60);
rect(300, 360, 20, 60);
}
if(sicehun==1)
{
fill(0,0,0,120);
rect(150, 280, 20, 60);
rect(150, 360, 20, 60);
}
if(siceten==2)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(220, 360, 20, 60);
rect(240,420,60,20);
}
if(sicehun==2)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(70, 360, 20, 60);
rect(90,420,60,20);
}
if(sice==2)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(370, 360, 20, 60);
rect(390,420,60,20);
}
if(sice==3)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
}
if(siceten==3)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
}
if(sicehun==3)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
}
if(sice==4)
{
fill(0,0,0,120);
rect(370, 280, 20, 60);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
}
if(siceten==4)
{
fill(0,0,0,120);
rect(220, 280, 20, 60);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
}
if(sicehun==4)
{
fill(0,0,0,120);
rect(70, 280, 20, 60);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
}
if(sice==5)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(370, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
}
if(siceten==5)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(220, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
}
if(sicehun==5)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(70, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
}
if(sice==6)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
rect(370, 360, 20, 60);
}
if(siceten==6)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
rect(220, 360, 20, 60);
}
if(sicehun==6)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
rect(70, 360, 20, 60);
}
if(sice==7)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(450, 360, 20, 60);
}
if(siceten==7)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(300, 360, 20, 60);
}
if(sicehun==7)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(150, 360, 20, 60);
}
if(sice==8)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
rect(370, 360, 20, 60);
rect(370, 280, 20, 60);
}
if(siceten==8)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
rect(220, 360, 20, 60);
rect(220, 280, 20, 60);
}
if(sicehun==8)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
rect(70, 360, 20, 60);
rect(70, 280, 20, 60);
}
if(sice==9)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
// rect(320, 280, 20, 60);
rect(370, 280, 20, 60);
}
if(siceten==9)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
rect(240,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
// rect(320, 280, 20, 60);
rect(220, 280, 20, 60);
}
if(sicehun==9)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
rect(90,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
// rect(320, 280, 20, 60);
rect(70, 280, 20, 60);
}
if(sice==0)
{
fill(0,0,0,120);
rect(390,260,60,20);
rect(450, 280, 20, 60);
// rect(390,340,60,20);
rect(450, 360, 20, 60);
rect(390,420,60,20);
rect(370, 360, 20, 60);
rect(370, 280, 20, 60);
}
if(siceten==0)
{
fill(0,0,0,120);
rect(240,260,60,20);
rect(300, 280, 20, 60);
// rect(390,340,60,20);
rect(300, 360, 20, 60);
rect(240,420,60,20);
rect(220, 360, 20, 60);
rect(220, 280, 20, 60);
}
if(sicehun==0)
{
fill(0,0,0,120);
rect(90,260,60,20);
rect(150, 280, 20, 60);
// rect(390,340,60,20);
rect(150, 360, 20, 60);
rect(90,420,60,20);
rect(70, 360, 20, 60);
rect(70, 280, 20, 60);
}
}
void keyPressed(){
if(key=='a'|| key == 'A'){
a12=true;
}
else if(key=='s'|| key == 'S'){
s12=true;
s123=1;
}
else if(key=='d'|| key == 'D')
{
d1=true;
}
else if(key=='f'|| key == 'F')
{
f1=true;
}
if(key=='z'|| key == 'Z'){
z1=true;
}
else if(key=='x'|| key == 'X'){
x1=true;
}
else if(key=='c'|| key == 'C')
{
c1=true;
}
else if(key=='v'|| key == 'V')
{
v1=true;
}
if(key=='y'|| key == 'Y'){
y1=true;
}
else if(key=='u'|| key == 'U'){
u1=true;
}
else if(key=='i'|| key == 'I')
{
i1=true;
}
else if(key=='o'|| key == 'O')
{
o1=true;
}
if(key=='h'|| key == 'H'){
h1=true;
}
else if(key=='j'|| key == 'J'){
j1=true;
}
else if(key=='k'|| key == 'K')
{
k1=true;
}
else if(key=='l'|| key == 'L')
{
l1=true;
}
else if(key=='q'|| key == 'Q')/////////////////////////////////開始建
{
q1=true;
}
}
void keyReleased(){
if(key=='a'|| key == 'A')
{
a12=false;
if(sice<10)
{
sice++;
}
if(sice==10)
{
sice=0;
if(siceten<10)
{
siceten++;
}
if(siceten==10)
{
siceten=0;
if(sicehun<10)
{
sicehun++;
}
}
}
}
if(key=='s'|| key == 'S'){
s12=false;
s123=0;
}
if(key=='d'|| key == 'D')
{
d1=false;
}
else if(key=='f'|| key == 'F')
{
f1=false;
}
else if(key=='z'|| key == 'Z')
{
z1=false;
}
if(key=='x'|| key == 'X'){
x1=false;
}
if(key=='c'|| key == 'C')
{
c1=false;
}
else if(key=='v'|| key == 'V')
{
v1=false;
}
if(key=='y'|| key == 'Y'){
y1=false;
}
else if(key=='u'|| key == 'U'){
u1=false;
}
else if(key=='i'|| key == 'I')
{
i1=false;
}
else if(key=='o'|| key == 'O')
{
o1=false;
}
if(key=='h'|| key == 'H'){
h1=false;
}
else if(key=='j'|| key == 'J'){
j1=false;
}
else if(key=='k'|| key == 'K')
{
k1=false;
}
else if(key=='l'|| key == 'L')
{
l1=false;
}
else if(key=='q'|| key == 'Q')/////////////////////////開始建
{
q1=false;
}
}
加入時間自動編輯
加入計分判斷
week08,hw08
1本周進度
這禮拜完成了計分和小人移動的部分,洞穴會越來越窄,而小人會不斷的往下掉,不管他會觸碰到洞穴邊緣死掉,所以我們要一直按空白健讓小人往上移動,不要碰到洞穴邊緣。每次玩遊戲結束或是game over之後可以按Enter重玩一遍.遊戲的最高分數會記錄於左上角。
遊戲失敗畫面
遊戲畫面
2本週程式碼
int cfg_width =450;
int cfg_height = 450;
int cfg_maxchange = 5;
float cfg_space_mod = 0.9994;
int cfg_playersize = 5;
float cfg_gravity = 1.0002;
PImage body;
float dir = 1;
long score = 0; //分數
long maxscore = 0; //最高分紀錄
int push = 0; //按空白鍵增加
int mode = 1; // 遊戲狀態
float cur_space = 450;
float factor = 0.5;
//穴邊
int[] ylinetop = new int[cfg_width];
int[] ylinebottom = new int[cfg_width];
float[] yplayer = new float[cfg_width/2];
PFont myFont;
void initcave() {
score = 0;
dir = 1;
push = 0;
cur_space = 400;
body=loadImage("body.png");
for(int i = 0; i < width; i++) {
ylinetop[i] = height/2-int(cur_space)/2;
ylinebottom[i] = ylinetop[i]+int(cur_space);
}
for(int i = 0; i < width/2; i++) {
yplayer[i] = height/2;
}
}
void drawframe () {
background(0,0,0);
stroke(255,0,0);
for(int i=1; i<width; i++) {
line(i, 0, i, ylinetop[i]);
line(i, ylinebottom[i], i, height);
}
for(int i=1; i<width/2; i++) {
image(body,i, int(yplayer[i]),80,80);
if ( ylinetop[i]==10 & ylinebottom[i]==100){
background(255);
}
}
if (mode < 1) {
stroke(0,255,0);
strokeWeight(5);
fill(100,255,0);
ellipse(width/2, yplayer[width/2 - 1], 150, 150);
}
}
void setup()
{
size(cfg_width, cfg_height);
initcave();
frameRate(100);
}
void drawscore()
{
stroke(0);
strokeWeight(3);
fill(0);
text("最高分紀錄: " + int(maxscore/10) + " 分數: " + int(score/10), 1, 12);
if (mode == -1) {
text("Game Over!再玩一次.", 2, 26);
}
}
void draw()
{
if (mode == 1) {
for(int i = 1; i < width; i++) {
ylinetop[i-1] = ylinetop[i];
ylinebottom[i-1] = ylinebottom[i];
}
for(int i = 1; i < width/2; i++) {
yplayer[i-1] = yplayer[i];
}
ylinetop[width-1] =
constrain( int( random(-cfg_maxchange, cfg_maxchange) + factor)
+ ylinetop[width-1]
, 0, height-int(cur_space+1));
ylinebottom[width-1] = ylinetop[width-1] + int(cur_space);
dir = pow(cfg_gravity, dir) * dir;
yplayer[width/2-1] = constrain(yplayer[width/2- 2] * dir, 1, height-2);
if (yplayer[width/2-1] < ylinetop[width/2] ||
yplayer[width/2-1] > ylinebottom[width/2]) {
mode = 0;
}
cur_space *= cfg_space_mod;
score += 1;
if (ylinetop[width-1] < 2 || ylinebottom[width-1] > height-2) {
factor *= -1;
}
} else {
if (mode == 0) {
maxscore = maxscore > score ? maxscore : score;
mode = -1;
}
}
drawframe();
drawscore();
}
void keyPressed() {
if (mode == 1 && key == ' ') {
dir *= 0.997;
}
if (mode == -1 && (keyCode == ENTER || keyCode == RETURN)) {
mode = 1;
initcave();
}
}
3尚未完成吃金幣的功能
4本周心得
這禮拜將小人用貼圖方式放進遊戲中,讓它可以順利執行,很開心
今天老師又說明了音樂怎麼進程式中,這樣一來我們也考慮放背景音樂至遊戲裡。
這禮拜完成了計分和小人移動的部分,洞穴會越來越窄,而小人會不斷的往下掉,不管他會觸碰到洞穴邊緣死掉,所以我們要一直按空白健讓小人往上移動,不要碰到洞穴邊緣。每次玩遊戲結束或是game over之後可以按Enter重玩一遍.遊戲的最高分數會記錄於左上角。
遊戲失敗畫面
遊戲畫面
2本週程式碼
int cfg_width =450;
int cfg_height = 450;
int cfg_maxchange = 5;
float cfg_space_mod = 0.9994;
int cfg_playersize = 5;
float cfg_gravity = 1.0002;
PImage body;
float dir = 1;
long score = 0; //分數
long maxscore = 0; //最高分紀錄
int push = 0; //按空白鍵增加
int mode = 1; // 遊戲狀態
float cur_space = 450;
float factor = 0.5;
//穴邊
int[] ylinetop = new int[cfg_width];
int[] ylinebottom = new int[cfg_width];
float[] yplayer = new float[cfg_width/2];
PFont myFont;
void initcave() {
score = 0;
dir = 1;
push = 0;
cur_space = 400;
body=loadImage("body.png");
for(int i = 0; i < width; i++) {
ylinetop[i] = height/2-int(cur_space)/2;
ylinebottom[i] = ylinetop[i]+int(cur_space);
}
for(int i = 0; i < width/2; i++) {
yplayer[i] = height/2;
}
}
void drawframe () {
background(0,0,0);
stroke(255,0,0);
for(int i=1; i<width; i++) {
line(i, 0, i, ylinetop[i]);
line(i, ylinebottom[i], i, height);
}
for(int i=1; i<width/2; i++) {
image(body,i, int(yplayer[i]),80,80);
if ( ylinetop[i]==10 & ylinebottom[i]==100){
background(255);
}
}
if (mode < 1) {
stroke(0,255,0);
strokeWeight(5);
fill(100,255,0);
ellipse(width/2, yplayer[width/2 - 1], 150, 150);
}
}
void setup()
{
size(cfg_width, cfg_height);
initcave();
frameRate(100);
}
void drawscore()
{
stroke(0);
strokeWeight(3);
fill(0);
text("最高分紀錄: " + int(maxscore/10) + " 分數: " + int(score/10), 1, 12);
if (mode == -1) {
text("Game Over!再玩一次.", 2, 26);
}
}
void draw()
{
if (mode == 1) {
for(int i = 1; i < width; i++) {
ylinetop[i-1] = ylinetop[i];
ylinebottom[i-1] = ylinebottom[i];
}
for(int i = 1; i < width/2; i++) {
yplayer[i-1] = yplayer[i];
}
ylinetop[width-1] =
constrain( int( random(-cfg_maxchange, cfg_maxchange) + factor)
+ ylinetop[width-1]
, 0, height-int(cur_space+1));
ylinebottom[width-1] = ylinetop[width-1] + int(cur_space);
dir = pow(cfg_gravity, dir) * dir;
yplayer[width/2-1] = constrain(yplayer[width/2- 2] * dir, 1, height-2);
if (yplayer[width/2-1] < ylinetop[width/2] ||
yplayer[width/2-1] > ylinebottom[width/2]) {
mode = 0;
}
cur_space *= cfg_space_mod;
score += 1;
if (ylinetop[width-1] < 2 || ylinebottom[width-1] > height-2) {
factor *= -1;
}
} else {
if (mode == 0) {
maxscore = maxscore > score ? maxscore : score;
mode = -1;
}
}
drawframe();
drawscore();
}
void keyPressed() {
if (mode == 1 && key == ' ') {
dir *= 0.997;
}
if (mode == -1 && (keyCode == ENTER || keyCode == RETURN)) {
mode = 1;
initcave();
}
}
3尚未完成吃金幣的功能
4本周心得
這禮拜將小人用貼圖方式放進遊戲中,讓它可以順利執行,很開心
今天老師又說明了音樂怎麼進程式中,這樣一來我們也考慮放背景音樂至遊戲裡。
Week08,Hw08
1. 請寫下以下資料:
1.1. 你之前完成了什麼?
1.遊戲畫面。
2.隨機產生游標,以及游標的位移。
3.背景。
4.Combo畫面,以及combo判斷。
5.速度調整,難度調整。
6.游標變換。
7.不同的背景以及combo、數字圖樣。
8.說明頁面。
小丸子游標 以及 遊戲畫面:
另一首歌的畫面:
1.2. 你今天計畫要做什麼?
1.選單部分,包含選擇游標、歌曲、最高分紀錄。
2.開始畫面
1.3. 可能會遇到的問題... (及可能的解決方法)
1.使用越多的場景,程式會越難增加。故必須要將程式整理,使其增加能辯度。
2.由於場景是連續修正,擔心效率問題。故修改部分需要效率的場景之程式結構。
3.普面設計的問題,需要按照節奏,故必須要考慮到時間。故使用文字檔搭配millis()儲存,並記錄時間以及做時間的修正位移。
2. 請把你目前期中作品的進度貼出來
歌曲1:畫面風格
歌曲2畫面風格:
歌曲1COMBO以及數字風格:
歌曲2COMBO以及數字風格:
說明頁面:
1.1. 你之前完成了什麼?
1.遊戲畫面。
2.隨機產生游標,以及游標的位移。
3.背景。
4.Combo畫面,以及combo判斷。
5.速度調整,難度調整。
6.游標變換。
7.不同的背景以及combo、數字圖樣。
8.說明頁面。
小丸子游標 以及 遊戲畫面:
另一首歌的畫面:
1.2. 你今天計畫要做什麼?
1.選單部分,包含選擇游標、歌曲、最高分紀錄。
2.開始畫面
1.3. 可能會遇到的問題... (及可能的解決方法)
1.使用越多的場景,程式會越難增加。故必須要將程式整理,使其增加能辯度。
2.由於場景是連續修正,擔心效率問題。故修改部分需要效率的場景之程式結構。
3.普面設計的問題,需要按照節奏,故必須要考慮到時間。故使用文字檔搭配millis()儲存,並記錄時間以及做時間的修正位移。
2. 請把你目前期中作品的進度貼出來
歌曲1:畫面風格
歌曲2畫面風格:
歌曲1COMBO以及數字風格:
歌曲2COMBO以及數字風格:
說明頁面:
Week08 , HW08
1. 請寫下以下資料:
1.1. 你之前完成了什麼?
找完素材,想好架構,並尋找可利用的程式
1.2. 你今天計畫要做什麼?
(a)把首頁畫面完成
(b)遊戲畫面裡,酒瓶可以跑出來,準心可以跟著滑鼠移動
1.3. 可能會遇到的問題... (及可能的解決方法)
(a)選單畫面的設置
(b)儲存酒瓶的陣列
2. 請把你目前期中作品的進度貼出來
(a)首頁畫面
(a)把首頁畫面完成
程式碼:
PImage screenleft,screenright,people,bg;
boolean ctl=true,ctl2=false; //control mouse press
int siteX1=0,siteX2=350,siteX3=525; //Image site
//Var
PImage gun,star;
PImage [] bottle = new PImage[5];
float [] bx = new float [5];
//首頁畫面
void Start()
{
if(mousePressed&&mouseX<430&&mouseX>270&&mouseY<430&&mouseY>270&&ctl)
ctl=false;
if(ctl==false && ctl2==false){
image(screenleft, siteX1-=3, 0, width/2, height);
image(screenright,siteX2+=3,0,width/2, height);
image(people,siteX3+=1,150,width/4, height/1.5);
if(siteX1<-350&&siteX2>700&&siteX3>700) ctl2=true;
if(ctl2) ;
}
else if(ctl==true && ctl2 == false){
image(screenleft, siteX1, 0, width/2, height);
image(screenright,siteX2,0,width/2, height);
image(people,siteX3,150,width/4, height/1.5);
fill(66,66,255);
ellipse(350,350, 80,80);
fill(255,255,0);
textFont(createFont("Georgia", 20));
text("START",320,355);
}
}
void setup() {
//Size
size(700,525);
bg = loadImage("bg.jpg");
//Load Image
screenleft = loadImage("screen_left.jpg");
screenright = loadImage("screen_right.jpg");
people = loadImage("people.png");
//Print Image
image(screenleft, siteX1, 0, width/2, height);
image(screenright,siteX2,0,width/2, height);
image(people,siteX3,150,width/4, height/1.5);
//code
//textFont(createFont("Georgia", 40));
gun=loadImage("gun.png");
star=loadImage("star.png");
for(int i=0;i<5;i++){
bottle[i]=loadImage("bottle.png");
}
}
void draw() {
background(bg);
Start();
//code
if(siteX1<-350&&siteX2>700&&siteX3>700){
bottle();
gun();
}
}
void gun(){
image(gun,530,420);
image(star,mouseX,mouseY);
text("Score:",40,500);
}
void bottle(){
for(int i=0;i<5;i++){
image(bottle[i],i*50+bx[i],98,50,80);
bx[i]+=2;
if(bx[i]==700){
bx[i]=0;
}
}
}
1.1. 你之前完成了什麼?
找完素材,想好架構,並尋找可利用的程式
1.2. 你今天計畫要做什麼?
(a)把首頁畫面完成
(b)遊戲畫面裡,酒瓶可以跑出來,準心可以跟著滑鼠移動
1.3. 可能會遇到的問題... (及可能的解決方法)
(a)選單畫面的設置
(b)儲存酒瓶的陣列
2. 請把你目前期中作品的進度貼出來
(a)首頁畫面
(a)把首頁畫面完成
程式碼:
PImage screenleft,screenright,people,bg;
boolean ctl=true,ctl2=false; //control mouse press
int siteX1=0,siteX2=350,siteX3=525; //Image site
//Var
PImage gun,star;
PImage [] bottle = new PImage[5];
float [] bx = new float [5];
//首頁畫面
void Start()
{
if(mousePressed&&mouseX<430&&mouseX>270&&mouseY<430&&mouseY>270&&ctl)
ctl=false;
if(ctl==false && ctl2==false){
image(screenleft, siteX1-=3, 0, width/2, height);
image(screenright,siteX2+=3,0,width/2, height);
image(people,siteX3+=1,150,width/4, height/1.5);
if(siteX1<-350&&siteX2>700&&siteX3>700) ctl2=true;
if(ctl2) ;
}
else if(ctl==true && ctl2 == false){
image(screenleft, siteX1, 0, width/2, height);
image(screenright,siteX2,0,width/2, height);
image(people,siteX3,150,width/4, height/1.5);
fill(66,66,255);
ellipse(350,350, 80,80);
fill(255,255,0);
textFont(createFont("Georgia", 20));
text("START",320,355);
}
}
void setup() {
//Size
size(700,525);
bg = loadImage("bg.jpg");
//Load Image
screenleft = loadImage("screen_left.jpg");
screenright = loadImage("screen_right.jpg");
people = loadImage("people.png");
//Print Image
image(screenleft, siteX1, 0, width/2, height);
image(screenright,siteX2,0,width/2, height);
image(people,siteX3,150,width/4, height/1.5);
//code
//textFont(createFont("Georgia", 40));
gun=loadImage("gun.png");
star=loadImage("star.png");
for(int i=0;i<5;i++){
bottle[i]=loadImage("bottle.png");
}
}
void draw() {
background(bg);
Start();
//code
if(siteX1<-350&&siteX2>700&&siteX3>700){
bottle();
gun();
}
}
void gun(){
image(gun,530,420);
image(star,mouseX,mouseY);
text("Score:",40,500);
}
void bottle(){
for(int i=0;i<5;i++){
image(bottle[i],i*50+bx[i],98,50,80);
bx[i]+=2;
if(bx[i]==700){
bx[i]=0;
}
}
}
Week08,HW08
1. 期中作品報告:
1.1. 之前完成的部分:
之前已完成遊戲背景底色與其他區域的配色,以及所有的固定文字及
數字的擺設,還有將洛克人去背剩人物本身,有向左、向右跑動以及向左
跳和向又跳的動作圖示。
1.2. 今天計畫的部分:
今天計劃的部分是將洛克人能成功在限定的範圍內左右跑動,以及向
左和向右的方向正確,在來就是能使遊戲中途暫停及再度開始,
1.3. 可能會遇到的問題,及可能的解決方法
之後可能遇到的問題是,當人物漸漸向上移動時,上方的長方形也會
慢慢出現,但要如何讓洛克人成功的站在每條方塊上,以及移動和跳動。
2. 目前期中作品的進度圖
訂閱:
文章 (Atom)