最終版本,GIF要載模組
import gifAnimation.*;
PImage[] animation;
Gif loopingGif;
import processing.sound.*;
SoundFile Sound;
int N=10,b=0,k=2;
Domino [] d;
String [] number={" ","1","2","3","4","5","6"};
String [] word={"右鍵可將牌翻轉","a鍵可以讓牌轉90度","s鍵可以將牌重置","p鍵可以洗牌","q可以發牌"};
void setup(){
size(1000,600);
println("gifAnimation " + Gif.version());
loopingGif = new Gif(this, "2.gif");
loopingGif.loop();
animation = Gif.getPImages(this, "2.gif");
Sound = new SoundFile(this,"happy.mp3");
Sound.play();
Sound.loop();
background(#F2EB98);
PFont font = createFont("標楷體", 20);
textFont(font);
d= new Domino[N];
for(int i=0;i<N;i++){
d[i]=new Domino();
}
textSize(30);
textAlign(CENTER,CENTER);
}
void draw(){
background(#F2EB98);
image(loopingGif, 0, height - loopingGif.height );
fill(#98EEF2);
rect(0,0,210,30);
rect(210,0,260,30);
rect(470,0,330,30);
rect(800,0,260,30);
rect(0,550,180,50);
fill(0);
text(word[0],100,10);
fill(0);
text(word[1],340,10);
fill(0);
text(word[2],600,10);
text("剩餘:",750,10);
text(k,790,13);
fill(0);
text(word[3],900,10);
fill(0);
text(word[4],80,570);
if(b==0){
fill(#98EEF2);
rect(300,250,300,100);
fill(0);
text("按下w開始遊戲",450,300);
}
if(b==1){
for(int i=0;i<N;i++){
if(d[i].a==0)d[i].draw();
else d[i].draw2();
}
}
if(b==2){
fill(#98EEF2);
rect(300,250,300,100);
fill(0);
text("你輸了",450,300);
}
if(b==3){
fill(#98EEF2);
rect(300,250,300,100);
fill(0);
text("你贏了",450,300);
}
}
void mousePressed(){
if(mouseButton==RIGHT){
for(int i=0;i<N;i++){
if(d[i].x<mouseX && mouseX<d[i].x+120 && d[i].y<mouseY && mouseY<d[i].y+60)
{
int t=d[i].n1;
d[i].n1=d[i].n2;
d[i].n2=t;
}
}
}
}
void keyPressed(){
if(key=='a' || key=='A'){
for(int i=0;i<N;i++){
if(d[i].x<mouseX && mouseX<d[i].x+120 && d[i].y<mouseY && mouseY<d[i].y+60){
if(d[i].a==0)d[i].a=1;
else d[i].a=0;
}
}
}
if(key=='s' || key=='S'){
if(k>0){
for(int i=0;i<N;i++){
if(d[i].x<mouseX && mouseX<d[i].x+120 && d[i].y<mouseY && mouseY<d[i].y+60 ){
if(k>0)k--;
d[i].n1=(int)random(7);
d[i].n2=(int)random(7);
}
}
}
}
if(key=='p' || key=='P'){
k=2;
for(int i=0;i<N;i++){
d[i].n1=(int)random(7);
d[i].n2=(int)random(7);
d[i].x=(int)random(100,800);
d[i].y=(int)random(100,500);
}
}
if(key=='w' || key=='W'){
N=1;
if(b==0)b=1;
else b=0;
}
if(key=='q' || key=='Q'){
if(N<10) N++;
}
if(key=='e' || key=='E'){
if(N>0) N--;
}
if(key=='o' || key=='O'){
b=2;
}
if(key=='l' || key=='L'){
b=3;
}
}
void mouseDragged(){
for(int i=0;i<N;i++)
{
if(d[i].x<mouseX && mouseX<d[i].x+120 && d[i].y<mouseY && mouseY<d[i].y+60){
d[i].x+=(mouseX-pmouseX);
d[i].y+=(mouseY-pmouseY);
}
}
}
class Domino{
int x,y;
int n1,n2;
int a;
Domino(){
x=(int)random(100,800);
y=(int)random(100,500);
n1=(int)random(7);
n2=(int)random(7);
a=0;
}
void draw(){
fill(50);
rect(x+60,y,60,60);
rect(x,y,60,60);
fill(255);
text(number[n1],x+30,y+30);
text(number[n2],x+60+30,y+30);
}
void draw2(){
fill(50);
rect(x,y,60,60);
rect(x,y+60,60,60);
fill(255);
text(number[n1],x+30,y+30);
text(number[n2],x+30,y+60+30);
}
}
參考網址:https://cloud.tencent.com/developer/article/1901794

沒有留言:
張貼留言