20.11.2016 Views

Android App Development ฉบับสมบูรณ์

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

การจัดการเกี ่ยวกับหน้าจอสัมผัส (TouchScreen)<br />

จากหัวข้อที่ผ่านมา การพัฒนาเกมจะใช้คลาส View มาสร้างเป็นหน้าจอเกม ซึ่งการดักจับเหตุการณ์<br />

เมื่อผู้เล่นสัมผัสที่หน้าจอสามารถทำได้ด้วยการอิมพลีเมนต์คลาส OnTouchListener โดยเขียนโค้ด Java เพิ่ม<br />

ในเมธอด onTouch() ของคลาส Panel ดังนี้<br />

public boolean onTouch(View view, MotionEvent event) {<br />

if (event.getAction() == MotionEvent.ACTION_DOWN) {<br />

Point point = new Point();<br />

point.x = (int) event.getX();<br />

point.y = (int) event.getY();<br />

int i = (int) (1.0f * point.x / (block_width / 3));<br />

int j = (int) (1.0f * point.y / (block_width / 3));<br />

Log.i("Point", "(" + i + "'" + j + ")");<br />

game.makeMove(i, j, current_player);<br />

if (one_player) {<br />

switchPlayer();<br />

SimpleXOAI.calculateMove(game, current_player);<br />

switchPlayer();<br />

} else {<br />

switchPlayer();<br />

}<br />

invalidate(); // refresh screen;<br />

}<br />

if (game.getWinner() != 0 && pause_flag != true) {<br />

pause_flag = true;<br />

gameOver(game.getWinner());<br />

} else if (!game.isSpaceLeft()) {<br />

pause_flag = true;<br />

gameOver(0);<br />

}<br />

}<br />

return true;<br />

เมื่อผู้อ่านรันเกมเพื่อทดสอบ และคลิกที่ช่องเพื่อทำเครื่องหมายจะปรากฏเครื่องหมาย X และ O ใน<br />

กรณีที่ผู้อ่านเลือกแบบเล่นคนเดียว หลังจากคลิกที่ช่องเพื่อทำเครื่องหมาย จะปรากฏหน้าต่าง “XO Game is<br />

not responding” เนื่องจากความล่าช้าในการประมวลผลของ Emulator ให้ผู้อ่านคลิกปุ่ม “Wait” และเมื่อเล่น<br />

จนจบเกมจะปรากฏเส้นสีเหลืองขีดทับเครื่องหมายของฝ่ายผู้ชนะดังรูป<br />

บทที ่ 12 การพัฒนาเกมแบบ 2 มิติ 263

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!