1 / 14

崖 っぷちの Hockey Game

崖 っぷちの Hockey Game. ゲーム説明①. コンピュータ対戦 ・始め方 コンパイル →タイトル画面→ Enter →ゲーム開始 ・操作方法 マウス操作 ・終わり方 ゴール→ゲームオーバー画面→ Enter →タイトル画面. ゲーム説明②. ・始め方 コンパイル→タイトル画面→スペースキー→ゲーム開始 ・操作方法 左側・・・ X キーと S キー 右側・・・上下キー ・終わり方 コンピュータ対戦と同じ. ゲーム説明③. ホッケーが反射するたびに効果音がなる 対戦中 は BGM がなる. Start 画面.

arav
Download Presentation

崖 っぷちの Hockey Game

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 崖っぷちのHockey Game

  2. ゲーム説明① コンピュータ対戦 ・始め方 コンパイル→タイトル画面→Enter→ゲーム開始 ・操作方法 マウス操作 ・終わり方 ゴール→ゲームオーバー画面→Enter→タイトル画面

  3. ゲーム説明② ・始め方 コンパイル→タイトル画面→スペースキー→ゲーム開始 ・操作方法 左側・・・XキーとSキー 右側・・・上下キー ・終わり方 コンピュータ対戦と同じ

  4. ゲーム説明③ • ホッケーが反射するたびに効果音がなる • 対戦中はBGMがなる

  5. Start画面 • 起動すると“title.jpg”表示される。 • (game flag =0) • ENTER Key を押すと game flag =1 になり、コンピュータが相手の • ゲーム画面が表示される。 • SPACEKey を押すと game flag=3 になり、1対1の勝負ができるゲーム画面が表示される。 ImageIconicon3 = new ImageIcon("title.jpg"); image3 = icon3.getImage(); title_width= image3.getWidth(this); title_height= image3.getHeight(this); ImageIcon icon4 = new ImageIcon("start.jpg"); image4 = icon4.getImage(); title_width = image4.getWidth(this); title_height = image4.getHeight(this); if(game_flag==0){ start_x=d.width/10; start_y=6*d.height/10; g.drawImage(image3,title_x,title_y,this); g.drawImage(image4,start_x,start_y,this); }….. public void keyPressed(KeyEvent e){ int key=e.getKeyCode(); if(game_flag==0 && key==KeyEvent.VK_ENTER){ game_flag=1; } if(game_flag==0 && key==KeyEvent.VK_SPACE){ game_flag=3; }

  6. if(game_flag==1||game_flag==3){ setBackground(Color.black); g.setColor(Color.red); g.fillRect(0,0,d.width,50); g.fillRect(0,d.height-50,d.width,50); g.fillRect(0,0,50,d.height/5); g.fillRect(d.width-50,0,50,gate1_y); g.fillRect(d.width-50,gate2_y,50,1500); g.fillRect(0,4*d.height/5,50,d.height/5); g.drawLine(d.width/2,0,d.width/2,d.height); g.drawOval(d.width/2-200,d.height/2-200,400,400); if(game_flag==3)jiki_x = d.width-150; g.drawImage(image1,jiki_x,jiki_y,this); g.drawImage(image2,teki_x,teki_y,this); if(ball_alive==1){ g.setColor(Color.white); g.fillOval(ball_x,ball_y,30,30); } } game画面 • コンピュータ対戦 操作方法 マウス ①ゲームの基本的な配置 ②Game flag=3は一人対戦 ③ball_alive==1はボールが コート上に存在していることを 示す。

  7. if(game_flag==1){ if(ball_y>d.height/10 && ball_y+teki_height<9*d.height/10){ teki_y = ball_y; } ④敵機の動きはボールの   Y座標と同じ。 ⑤自分のゲート(ゴール)の          開閉 if(gate_flag==0){ gate1_y -= 5; gate2_y += 5; if(gate1_y<50) gate_flag=1; } if(gate_flag==1){ gate1_y += 5; gate2_y -= 5; if(gate1_y>d.height/2-50) gate_flag=0; } if(ball_x<0 || ball_x>d.width){ ball_alive=0; game_flag=2; repaint(); } }

  8. ⑥壁の反射&効果音 if(kabe_flag1==1){ ball_x += 5+i; if ((ball_x+30>d.width-50 && (gate1_y>ball_y+15 || gate2_y<ball_y+15)) || (jiki_x<ball_x+30 && ball_x+30<jiki_x+jiki_width && jiki_y<ball_y+15 && (jiki_y+jiki_height>ball_y+15))){ pong.stop(); pong.play(); kabe_flag1 = 2; } } if(kabe_flag1==2){ ball_x -= 5+i; if((ball_x<40 && (d.height/5>ball_y || 4*d.height/5<ball_y)) || (ball_x<(teki_x+teki_width) && ball_x>teki_x && ball_y<(teki_y+teki_height) && ball_y>(teki_y-20))){ pong.stop(); pong.play(); kabe_flag1 = 1; } }

  9. if(kabe_flag2==1){ ball_y += 5+i; if (ball_y>d.height-75){ pong.stop(); pong.play(); kabe_flag2 = 2; } } if(kabe_flag2==2){ ball_y -= 5+i; if(ball_y<40){ pong.stop(); pong.play(); kabe_flag2 = 1; } } ⑦壁の反射(続き)  ボールの速さが徐々に早くなっていく。 (iも変数) ⑧初期ゲーム画面 if(game_flag==2){ ball_alive=1; ball_x=735; ball_y=455; i=0.0; bgm.stop(); }

  10. if(game_flag==2){ g.drawImage(image5,gameover_x,gameover_y,this); } ⑨ゲームオーバー画面の表示 public void mouseMoved(MouseEvent me) { if(game_flag==1){ Dimension d; d = getSize(); jiki_x = d.width-150; if(me.getY()>50 && me.getY()<d.height-(jiki_height+50) && (Math.abs(jiki_x - me.getX()) < 200) && Math.abs(jiki_y - me.getY()) < 200) jiki_y = me.getY(); } } ⑩マウス操作 ⑪スタート画面に戻る if(game_flag==2 && key==KeyEvent.VK_ENTER){ game_flag=0; repaint(); }

  11. if(ball_x<0){ ball_alive=0; game_flag=4; repaint(); } if(ball_x>d.width){ ball_alive=0; game_flag=5; repaint(); } if(game_flag==4||game_flag==5){ ball_alive=1; ball_x=735; ball_y=455; i=0.0; bgm.stop(); } 対戦ゲーム 操作 キー ⑫どちらかのゴールに  入ったかどうかの判定。  効果音に停止。   ボールの加速の停止。 if(game_flag==4){ setBackground(Color.red); } if(game_fla=5){ setBackground(Color.blue); } ⑬勝敗は色で表示

  12. if(game_flag==3){ Dimension d; d = getSize(); if(key==KeyEvent.VK_DOWN){ jiki_y+=80; } if(key==KeyEvent.VK_UP){ jiki_y-=80; } if(key==KeyEvent.VK_X){ teki_y+=80; } if(key==KeyEvent.VK_S){ teki_y-=80;     } if(jiki_y<50){ jiki_y=50; } if(jiki_y>d.height-130){ jiki_y=d.height-130; } if(teki_y<50){ teki_y=50; } if(teki_y>d.height-130){ teki_y=d.height-130; } } ⑭対戦ゲーム中のキー操作

  13. if(game_flag==4 && key==KeyEvent.VK_ENTER){ game_flag=0; repaint(); } if(game_flag==5 && key==KeyEvent.VK_ENTER){ game_flag=0; repaint(); } ⑮勝敗の表示後、 ENTER Keyで  スタート画面に戻る pong = Applet.newAudioClip(getClass().getResource("pong.wav")); bgm = Applet.newAudioClip(getClass().getResource("bgm.wav")); title = Applet.newAudioClip(getClass().getResource("title.wav")); ⑮BGM

  14. ご静聴ありがとうございました。

More Related