Your SlideShare is downloading. ×
0
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
J2ME  Game Concept
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

J2ME Game Concept

1,329

Published on

การออกแบบการเล่นของเกมส์ให้ง่ายต่อความเข้าใจ …

การออกแบบการเล่นของเกมส์ให้ง่ายต่อความเข้าใจ
ขนาดของรูปภาพที่แสดงผลบนหน้าจอ
ขนาดของ files เสียง หรือ รูปภาพต่างๆที่นำมาใช้
ต้องไม่มีขนาดใหญ่จนเกินไป
จัดลำดับของ game loop ให้มีรูปแบบ
การเขียน Thread และใช้ runnable ให้คำนึงถึง
Memory และ condition ของเกมส์

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,329
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. J2ME Game Concept
  • 2. หัวใจหลักของการสร้างเกมส์  การออกแบบการเล่นของเกมส์ให้ง่ายต่อความเข้าใจ  ขนาดของรูปภาพที่แสดงผลบนหน้าจอ  ขนาดของ files เสียง หรือ รูปภาพต่างๆที่นำามาใช้ ต้องไม่มีขนาดใหญ่จนเกินไป  จัดลำาดับของ game loop ให้มีรูปแบบ  การเขียน Thread และใช้ runnable ให้คำานึงถึง Memory และ condition ของเกมส์
  • 3. หลักการออกแบบเกมส์  อุปกรณ์ใช้ในการพัฒนาตามความต้องการของเกมส์ – ความละเอียดของหน้าจอ – ขนาดของ jar file – เลือกรุ่นหรือซีรีส์ของอุปกรณ์  เป้าหมายของเกมส์ – จะทำายังไงให้ผู้เล่นเกิดความสนุกและท้าทาย – ทำาไม่ให้เกิดความเบื่อเมื่อเล่นบ่อยๆ – สร้างความน่าสนใจในเกมส์ – สร้างเนื่อเรื่องให้กับเกมส์ เกมส์จะต้องไม่เล่นยากหรือเร็วเกินไป แต่ต้องสร้างความท้าทาย
  • 4. Classic Game Loop Start getInput Moving check Collision Repent Process End Games
  • 5. Category Game  Action Game  Puzzle Game  Strategy Game  Others Game
  • 6. Apple Tree import java.io.*; import java.util.Random; import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; import javax.microedition.media.*; import javax.microedition.midlet.*; public class appletree extends MIDlet { AppleCanvas canvas = new AppleCanvas(); public appletree() {} protected void destroyApp(boolean arg0) throws MIDletStateChangeException {} protected void pauseApp() {} protected void startApp() throws MIDletStateChangeException { Display display = Display.getDisplay(this); canvas.start(); display.setCurrent(canvas); } }
  • 7. class AppleCanvas extends GameCanvas implements Runnable { boolean running; int cx, cy, w, h; int delay = 20; Sprite cowboy; Sprite appletree_bg; LayerManager layerManager; Apple apple[]= new Apple[8]; Random position_x = new Random(); int score = 0;
  • 8. protected AppleCanvas() { super(true); w = getWidth(); h = getHeight(); cx = w/2; cy = h/2; Image img_cowboy =null; Image img_appleTree = null; try { img_cowboy = Image.createImage("/image/cowboy.png"); img_appleTree = Image.createImage("/image/appletree.png"); } catch (IOException e) {} cowboy = new Sprite(img_cowboy,32,48); appletree_bg = new Sprite(img_appleTree); layerManager = new LayerManager(); layerManager.append(cowboy); new_Apple(); layerManager.append(appletree_bg); }
  • 9. public void new_Apple(){ for(int i=0;i<apple.length;i++){ apple[i] = new Apple(); apple[i].setW(w); apple[i].setH(h); layerManager.append(apple[i].getTumbleweed()); } } public void run() { Graphics g = getGraphics(); while(running){ input(); drawScreen(g); for(int i=0;i<apple.length;i++){ if(apple[i].getTumbleweed().collidesWith(cowboy, false)){ apple[i].setY(h+1); score++; playBgSound("/sound/power_sound.wav"); } } try {Thread.sleep(delay);} catch (InterruptedException e) {} } }
  • 10. protected void playBgSound(final String a) { Runnable r = new Runnable() { public void run() { try { InputStream in = getClass().getResourceAsStream(a); Player player = Manager.createPlayer(in, "audio/x-wav"); player.start(); }catch (Exception e) {} } }; new Thread(r).start(); }
  • 11. private void input() { int keyState = getKeyStates(); if(keyState== LEFT_PRESSED){ cx = cx - 5; cx = Math.max(0, cx); cowboy.setTransform(2); cowboy.nextFrame(); } else if(keyState== RIGHT_PRESSED){ cx = cx + 5; cx = Math.min(cx, w-32); cowboy.setTransform(0); cowboy.nextFrame(); } }
  • 12. public void start() { running = true; Thread t = new Thread(this); t.start(); for(int i=0;i<apple.length;i++) { apple[i].start_thread(); } }
  • 13. void drawScreen(Graphics g){ String score_string = "Score = "+score+""; g.setColor(255,255,255); g.fillRect(0, 0, w, h); cowboy.setPosition(cx, h - 48); for(int i=0;i<apple.length;i++) { apple[i].getTumbleweed().setPosition(apple[i].getX(),apple[i].getY()); } appletree_bg.setPosition(15, 0); layerManager.paint(g, 0, 0); g.setColor(0,0,0); g.drawString(score_string,0,10,0); flushGraphics(); } }
  • 14. แนะนำำรูปแบบ  game Game boy scout รูปแบบการทำางานของเกมส์ – เราทำาหน้าที่เป็นลูกเสือ พาคนแก่ ข้ามถนนไปส่งที่ จุดหมาย – โดย จะต้องพาไปโดยไม่โดนรถชน – และพาไปส่งให้ถกจุดด้วยถึงจะได้คะแนน ู
  • 15. -1 +2 -1 -1 -1 +5 Random หยุดเวลา เกำะกลำงถนน +1
  • 16. แนะนำำรูปแบบ game  ทุบตัวตุ่น รูปแบบการทำางานของเกมส์ – ต้องทุบหัวตัวที่ขึ้นมาจากหลุมโดยจะมีหลุมอยู่ 9 หลุม โดยจะกดตีโดยใช้ เลย 1 - 9
  • 17. 1 2 3 ตัวหลอก ถ้ำไปตกดตีจะ 4 5 6 เสียคะแนน 7 8 9 ถ้ำกดตีทันจะ ได้คะแนน การเพิ่งความสนุกของเกมส์ทำาได้โดย • เพิ่งความเร็ว • เพิ่ง Sprite ให้มีรูปแบบการแสดงต่างกัน • เพิ่งเสียงที่ดตื่นเต้น ู • เพิ่มหรือลด หลุมเช่นเริ่มต้นที่ 3 หลุมก่อน ต่อจากนันจึงเพิ่มไปเลือยๆจนถึง 9 หลุม ้ ่ • ถ้าผ่านแต่ละด่านจะมีภาพ animation ให้ดูพร้อมเสียงเพลง
  • 18. WEB  http://www.java2s.com/  http://www.developer.com/  http://www.dbarnes.com/  http://www.j2mecodex.com/  http://developers.sun.com/mobility/midp/

×