顯示具有 week04 標籤的文章。 顯示所有文章
顯示具有 week04 標籤的文章。 顯示所有文章

2018年12月19日 星期三

week04 廖宜德

size 設定為800*600
繪出文字 "Start!!" 大小為100*100

加入方塊 rect 填入色彩為紅色
textsize 字體大小設定為80
位置為100,100

將座標都改為mouseX,mouseY
方塊與文字隨滑鼠移動改變位置

將背景設為白色的用意-->

每次繪圖時都會將背景刷為白色,就不會有一堆殘影

加入keyPressed 副程式
按下空白鍵後 畫出圓形並且圓形會射出
僅射出一個而已



加入陣列 可以射出非常多子彈

此為程式碼

使用PImage 引入照片
loadImage 讀取照片

將程式和在一起
背景圖設為CENTER中心點


若想下讓子彈向下掉,修改程式
bulletX[I]+=3;
改為
bulletY[i]+=9.8;
即能讓子彈向下掉

2018年10月5日 星期五

week04 文字 陣列 砲彈

week04

1.
在視窗上放文字 text("rabbit", 600, 150); //text(str, x, y);
改變文字大小 textSize(size);
改變文字字體
PFont font;
font = loadFont();//例如"Apple-Chancery-48.vlw"
textFont(font, 24);
自作砲彈(目前只能一顆), 按下鍵盤就可以噴出

下面程式能讓兔子的口中,發射出紅色砲彈


2.利用當天上課所教一些的內容,在上課兩小時寫出這個簡單的小遊戲 .
一開始會出現紅蘿波(carrot)和兔子(rabbit)的圖片
雙方都有三條命
紅蘿波這方按下鍵盤1 就能發出丟球的攻擊
反之兔子按下鍵盤0 也能發出攻擊
當球碰到對方時 對方會減少一命
當球相撞 會被抵銷掉
當某方的生命值歸零 對方就贏了
按下鍵盤q 視窗就會關起


2018年10月4日 星期四

week04



void setup(){
size(800,600); } void draw(){ background(255); fill(255,0,0);rect(100,100,100,100); for(int i=0;i<bulletn;i++){ if(bulletflying[i]){ ellipse(bulletx[i],bullety[i],50,50); bulletx[i]+=3; } } } float []bulletx=new float[100]; float []bullety=new float[100]; int bulletn=0; boolean []bulletflying=new boolean[100]; void keyPressed(){ bulletflying[bulletn]=true; bulletx[bulletn]=100; bullety[bulletn]=100; bulletn++; }



PImage imb; void setup(){ size(800,600); imb=loadImage("images.png"); } void draw(){ background(255); image(imb,mouseX,mouseY,100,100); for(int i=0;i<bulletn;i++){ if(bulletflying[i]){ // ellipse(bulletx[i],bullety[i],50,50); // bulletx[i]+=3; image(imb,bulletx[i],bullety[i],50,50); } } } float []bulletx=new float[100]; float []bullety=new float[100]; int bulletn=0; boolean []bulletflying=new boolean[100]; void mousePressed(){ bulletflying[bulletn]=true; bulletx[bulletn]=mouseX; bullety[bulletn]=mouseY; bulletn++; }



PImage imb; void setup(){ size(800,600); imb=loadImage("images.png"); } void draw(){ background(255); ellipse(mouseX,mouseY,50,50); //image(imb,mouseX,mouseY,100,100); for(int i=0;i<bulletn;i++){ if(bulletflying[i]){ ellipse(bulletx[i],bullety[i],50,50); //bulletx[i]+=3; //image(imb,bulletx[i],bullety[i],50,50); bullety[i]+=bulletvy[i]; bulletvy[i]+=0.98; } } } float []bulletx=new float[100]; float []bullety=new float[100]; float []bulletvy=new float[100]; int bulletn=0; boolean []bulletflying=new boolean[100]; void mousePressed(){ bulletflying[bulletn]=true; bulletx[bulletn]=mouseX; bullety[bulletn]=mouseY; bulletvy[bulletn]=-20; bulletn++; }

Week 04 Hankins

一、文字的加入

文字是往右上方長過去,這裡和rect比較(矩形往右下方長)。


與文字有關的一些函數:

其中有一個很重要的函數:textSize(),用來改變文字的大小。













更改後更能體現文字往右上角長(好大好大)



子彈射出的樣子,利用布林函數來控制子彈的出現,當鍵盤任意按鈕下去就改變布林值。


實作子彈咻咻咻飛過的例子:



解釋:
子彈給100顆

imageMode(CENTER); //imageMode(CENTER)解釋image()的第二個和第三個參數作為圖像的中心點。如果指定了兩個附加參數,則它們用於設置圖像的寬度和高度。

背景除以2的原因是因為:imageMode設定了CENTER(中心)

當bulletfly值為真,子彈就畫出來,每個子彈的X座標都會加10往右邊跑。

而為真的條件是滑鼠按下去,則為真,並且賦予其XY座標。

範例二:足球落下彈跳



很有趣的小例子,只是將圖片改掉並且把子彈往右射出的程式碼改掉,改成像下落,跟第三周的Mario一樣,所以當滑鼠按下去,足球就會往上跳一下然後落下,並且反彈。

week4

void setup(){ size(800,600); } void draw(){ fill(255,0,0);rect(100,100,100,100); textSize(80); fill(0,0,0);text("start",100,100); }
讓子彈飛出來
void setup(){ size(800,600); } void draw(){ background(255); fill(255,0,0);rect(100,100,100,100); if(bulletflying){ ellipse(bulletx,bullety,50,50); bulletx+=3; } } float bulletx=100,bullety=100; boolean bulletflying=false; void keyPressed(){ bulletflying=true; }

week04_阿天筆記


Week04 光

第四週


void draw(){
  fill(255,0,0); rect(100,100,100,100);//方形由十字中心往下畫
  textSize(80);//文字大小
  fill(0,0,0); text("Start!", 100,100);//文字由十字中心往上畫
}

射子彈
void draw(){
  background(255);//清背景
  fill(255,0,0); rect(100,100,100,100);
  if(bulletFlying){//當bulletFlying值是true
    ellipse(bulletX,bulletY, 50,50);//圓形子彈
    bulletX+=3;
  }
}
float bulletX=100, bulletY=100;
boolean bulletFlying=false;//先關掉
void keyPressed(){//鍵盤按下
  bulletFlying=true;//開啟
  bulletX=100;//這樣就可以喚回子彈
}

射子彈強化版(鍵盤)
void draw(){
  background(255);
  fill(255,0,0); rect(100,100,100,100);
   for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){
      ellipse(bulletX[i],bulletY[i], 50,50);
      bulletX[i]+=3;
    }
  }
}
float []bulletX=new float[100];//Java的陣列宣告;C++陣列float bulletX[100]={};
float []bulletY=new float[100];
int bulletN=0;//第N顆子彈從0開始
boolean []bulletFlying=new boolean[100];//bulletFlting大小宣告為100個
void keyPressed(){
  bulletFlying[bulletN]=true;//當按下鍵盤第N顆子彈=true
  bulletX[bulletN]=100; bulletY[bulletN]=100;//第N顆子彈的座標
  bulletN++;//第N顆子彈每次加1
}

射子彈強化版(滑鼠)
PImage imgBullet, imgBG;
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg");
  imgBullet = loadImage("bullet.jpg");//子彈圖片記得用PNG(去背
  imageMode(CENTER);
}
void draw(){
  image(imgBG, width/2,height/2, width,height);
  image(imgBullet, mouseX,mouseY, 100,100);
   for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){
      image(imgBullet, bulletX[i],bulletY[i], 100,100);
      bulletX[i]+=3;
    }
   }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
boolean []bulletFlying=new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;//滑鼠移動子彈射出的座標
  bulletY[bulletN]=mouseY;
  bulletN++;
}

射球但會往下墜
PImage imgBullet, imgBG;
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg");
  imgBullet = loadImage("bullet.jpg");
  imageMode(CENTER);
}
void draw(){
  image(imgBG, width/2,height/2, width,height);
  ellipse(mouseX,mouseY, 100,100);
  //image(imgBullet, mouseX,mouseY, 100,100);
  for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){
      //image(imgBullet, bulletX[i],bulletY[i], 100,100);
      ellipse(bulletX[i], bulletY[i], 100,100);
      //bulletX[i]+=3;
      bulletY[i]+=bulletVY[i];
      bulletVY[i]+=0.98;
    }
   }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
float []bulletVY=new float[100];
boolean []bulletFlying=new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletVY[bulletN]=-20;
  bulletN++;
}



Week04_黃惠嘉

🔺程式


void setup(){
  size(800,600);
}
void draw(){
  text("Start!",100,100);文字Start
}

void setup(){
  size(800,600);
}
void draw(){
  rect(0,0,200,200);⇒正方形
  text("Start!",100,100);
}


void setup(){

  size(800,600);
}
void draw(){
  fill(255,0,0); rect(100,100,100,100);⇒fill(255,0,0)顏色紅
  fill(0,0,0); text("Start!",100,100);⇒fill(0,0,0)顏色黑
}



void setup(){

  size(800,600);
}
void draw(){
  fill(255,0,0); rect(100,100,100,100);
  textSize(80);⇒文字大小
  fill(0,0,0); text("Start!",100,100);
}


void setup(){

  size(800,600);
}
void draw(){
  background(255);⇒背景,把殘影用白
  fill(255,0,0); rect(mouseX,mouseY,100,100);
mouseX,mouseY跟著滑鼠動
  textSize(80);
  fill(0,0,0); text("Start!",mouseX,mouseY);
mouseX,mouseY跟著滑鼠動
}



void setup(){

  size(800,600);
}
void draw(){
  background(255);
  fill(255,0,0); rect(100,100,100,100);
  
}
float bulletX=100,bulletY=100;
void keyPressed(){⇒按鍵盤
  ellipse(bulletX,bulletY,50,50);
ellipse(a,b,c,d) 
afloat: x-coordinate of the ellipse
bfloat: y-coordinate of the ellipse
cfloat: width of the ellipse by default
dfloat: height of the ellipse by default



void setup(){

  size(800,600);
}
void draw(){
  background(255);
  fill(255,0,0); rect(100,100,100,100);
  if(bulletFlying){
    ellipse(bulletX,bulletY,50,50);
    bulletX+=3;
  }
}
float bulletX=100,bulletY=100;
boolean bulletFlying=false;boolean true or false
void keyPressed(){
   bulletFlying=true;



void setup(){

  size(800,600);
}
void draw(){
  background(255);
  fill(255,0,0); rect(100,100,100,100);
  if(bulletFlying){ 
    ellipse(bulletX,bulletY,50,50);
    bulletX+=3;
  }
}
float bulletX=100,bulletY=100;
boolean bulletFlying=false;
void keyPressed(){
   bulletFlying=true;
   bulletX=100;



void setup(){

  size(800,600);
}
void draw(){
  background(255);
  fill(255,0,0); rect(100,100,100,100);
  for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){ 
      ellipse(bulletX[i],bulletY[i],50,50);
      bulletX[i]+=3;  
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
int bulletN=0;
boolean []bulletFlying=new boolean[100];
void keyPressed(){
   bulletFlying[bulletN]=true;
   bulletX[bulletN]=100;
   bulletY[bulletN]=100;
   bulletN++;



void setup(){

  size(800,600);
}
void draw(){
  background(255);
  fill(255,0,0); rect(100,100,100,100);
  for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){ 
      ellipse(bulletX[i],bulletY[i],50,50);
      bulletX[i]+=3;  
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
int bulletN=0;
boolean []bulletFlying=new boolean[100];
void keyPressed(){
   bulletFlying[bulletN]=true;
   bulletX[bulletN]=100;
   bulletY[bulletN]=100;
   bulletN++;
   println(bulletN); println 印



PImage imgBullet; 用於存儲圖像的數據類型。

void setup(){
  size(800,600);
  imgBullet=loadImage("bullet.png");
}

void draw(){

  image(imgBullet,mouseX,mouseY);
}


PImage imgBullet;

PImage imgBG; 
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg");
  imgBullet=loadImage("bullet.png");
  imageMode(CENTER);
}

void draw(){

  image(imgBG,width/2,height/2,width,height);
  image(imgBullet,mouseX,mouseY,100,100);
  for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){
      image(imgBullet,bulletX[i],bulletY[i],100,100);
    }
  }
}
float []bulletX = new float[100];
float []bulletY = new float[100];
boolean [] bulletFlying =new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletN++;
}



PImage imgBullet;

PImage imgBG; 
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg");
  imgBullet=loadImage("bullet.png");
  imageMode(CENTER);
}
 
默認模式是imageMode(CORNER),它將image()的第二個和第三個參數解釋為圖像的左上角。 如果指定了兩個附加參數,則它們用於設置圖像的寬度和高度。

imageMode(CORNERS)將image()的第二個和第三個參數解釋為一個角的位置,將第四個和第五個參數解釋為對角。

imageMode(CENTER)將image()的第二個和第三個參數解釋為圖像的中心點。 如果指定了兩個附加參數,則它們用於設置圖像的寬度和高度。

void draw(){
  image(imgBG,width/2,height/2,width,height);
  image(imgBullet,mouseX,mouseY,100,100);
  for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){
      image(imgBullet,bulletX[i],bulletY[i],100,100);
      bulletX[i] += 3; 讓bulletX移動
    }
  }
}
float []bulletX = new float[100];
float []bulletY = new float[100];
boolean [] bulletFlying =new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletN++;
}

Week 04 宋侑恩

Week 04 Part 1-1 - 寫出字形和字型大小

程式碼:

void setup(){
  size(800,600);
}
void draw(){
  fill(64,0,128); ///矩形內顏色
  rect(100,100,200,200); ///從(100,100)開始往右下畫
  textSize(80); ///文字大小
  fill(0,0,0);
  text("Start!",100,100); ///從(100,100)開始往右上畫
}


Week 04 Part 1-2 - 飛行的子彈

程式碼:

void setup(){
  size(800,600);
}
void draw(){
  background(255); ///清背景,不會有殘影
  fill(64,0,128); ///矩形顏色
  rect(100,100,200,200);
  fill(255,255,0); ///子彈顏色
  if(bulletFlying){
    ellipse(bulletX,bulletY,50,50);
    bulletX+=3; ///子彈往右移
  }
}
float bulletX=100,bulletY=100;
boolean bulletFlying=false;
void keyPressed(){
  bulletFlying=true; ///按下鍵盤會發出子彈
}


Week 04 Part 2-1 - 有限制次數的子彈

當子彈超過限制的次數後,就會當機

程式碼:

void setup(){
  size(800,600);
}
void draw(){
  background(255);
  fill(64,0,128); ///矩形顏色
  rect(100,100,200,200);
  fill(255,255,0); ///子彈顏色
  for(int i=0;i<bulletN;i++){
      if(bulletFlying[i]){
      ellipse(bulletX[i],bulletY[i],50,50);
      bulletX[i]+=3;
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
int bulletN=0;
boolean []bulletFlying=new boolean[100];
void keyPressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=100; bulletY[bulletN]=100;
  bulletN++;
  print(bulletN); ///可以看出子彈現在發出了幾顆
}


Week 04 Part 2-2- 利用滑鼠發出子彈

程式碼:

PImage imgBullet,imgBG;
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg"); ///背景圖片
  imgBullet = loadImage("bullet.png");///子彈圖片
  imageMode(CENTER); ///子彈中心
}
void draw(){
  image(imgBG,width/2,height/2,width,height);
  image(imgBullet,mouseX,mouseY,100,100);
  for(int i=0;i<bulletN;i++){
      if(bulletFlying[i]){
      image(imgBullet,bulletX[i],bulletY[i],100,100);
      bulletX[i]+=3;
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
boolean []bulletFlying=new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletN++;
}


Week 04 Part 3 - 利用滑鼠發出往上丟的球

程式碼:

PImage imgBullet,imgBG;
void setup(){
  size(800,600);
  imgBG = loadImage("BG.jpg");
  imgBullet = loadImage("ball.png");
  imageMode(CENTER);
}
void draw(){
  image(imgBG,width/2,height/2,width,height);
  image(imgBullet,mouseX,mouseY,75,75);
  for(int i=0;i<bulletN;i++){
      if(bulletFlying[i]){
      image(imgBullet,bulletX[i],bulletY[i],75,75);
      bulletY[i]+=bulletVY[i];
      bulletVY[i]+=0.98;
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
float []bulletVY = new float[100];
boolean []bulletFlying=new boolean[100];
int bulletN=0;
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletVY[bulletN]-=20;
  bulletN++;
}



week04

顯示文字(大小、顏色)

void setup()
{
  size(400,400);
}
void draw()
{
  fill(255,255,255);//填入顏色
  rect(100,100,100,100);//由頂點(100,100)往右下畫
  textSize(60);//調整文字大小
  fill(0,0,0);
text("Start",100,100);//由頂點(100,100)往右上畫
}











發射一顆子彈

void setup()
{
  size(400,400);
}
void draw()
{
  background(255);//清背景,消除殘影
  fill(0,255,255); rect(100,100,100,100);
  textSize(60);
  fill(0,0,0); text("Start",100,100);
  if(bulletFlying){
    ellipse(bulletX,bulletY,30,30);
    bulletX+=3;//子彈向右移動
  }
}
float bulletX=100,bulletY=100;
boolean bulletFlying=false;
void keyPressed(){
  bulletFlying=true;//按下鍵盤發出子彈
}














可連發的子彈

void setup()
{
  size(400,400);
}
void draw()
{
  background(255);
  fill(0,255,255);
  for(int i=0;i<bulletN;i++){
  if(bulletFlying[i]){
    ellipse(bulletX[i],bulletY[i],30,30);
    bulletX[i]+=3;
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
int bulletN=0;
boolean []bulletFlying=new boolean[100];
void keyPressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=100; bulletY[bulletN]=100;//準備100顆子彈
  bulletN++;//連續發射
}



















利用滑鼠隨意射出子彈

PImage imgBullet,imgBG;
void setup(){
  size(800,600);
  imgBG=loadImage("BG.jpg");
  imgBullet=loadImage("bullet.png");
  imageMode(CENTER);//圖片置中
}
void draw()
{
  image(imgBG,width/2,height/2,width,height);
  image(imgBullet,mouseX,mouseY,100,100);
  for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){
      image(imgBullet,bulletX[i],bulletY[i],100,100);
      bulletX[i]-=3;
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
int bulletN=0;
boolean []bulletFlying=new boolean[100];
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletN++;
}















炸彈向上拋

PImage imgBullet,imgBG;
void setup(){
  size(800,600);
  imgBG=loadImage("BG.jpg");
  imgBullet=loadImage("bullet.png");
  imageMode(CENTER);
}
void draw()
{
  image(imgBG,width/2,height/2,width,height);
  ellipse(mouseX,mouseY,100,100);
  for(int i=0;i<bulletN;i++){
    if(bulletFlying[i]){
      ellipse(bulletX[i],bulletY[i],100,100);
      bulletY[i]+=bulletVY[i];
      bulletVY[i]+=0.98;//增加Y方向的速度
    }
  }
}
float []bulletX=new float[100];
float []bulletY=new float[100];
float []bulletVY=new float[100];
int bulletN=0;
boolean []bulletFlying=new boolean[100];
void mousePressed(){
  bulletFlying[bulletN]=true;
  bulletX[bulletN]=mouseX;
  bulletY[bulletN]=mouseY;
  bulletVY[bulletN]=-10;//球向下掉
  bulletN++;
}