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.

public void surfaceChanged(SurfaceHolder holder, int format, int width,<br />

int height) {<br />

ball.setSize(width, height);<br />

}<br />

public void surfaceCreated(SurfaceHolder holder) {<br />

thread = new MyThread ();<br />

thread.start();<br />

}<br />

private void draw() {<br />

Canvas c = null;<br />

try {<br />

c = holder.lockCanvas();<br />

if (c != null) {<br />

doDraw(c);<br />

}<br />

} finally {<br />

if (c != null) {<br />

holder.unlockCanvasAndPost(c);<br />

}<br />

}<br />

}<br />

private void doDraw(Canvas c) {<br />

int width = c.getWidth();<br />

int height = c.getHeight();<br />

c.drawRect(0, 0, width, height, backgroundPaint);<br />

float ballX, ballY;<br />

synchronized (ball.LOCK) {<br />

ballX = ball.ballPixelX;<br />

ballY = ball.ballPixelY;<br />

}<br />

}<br />

c.drawCircle(ballX, ballY, BALL_RADIUS, ballPaint);<br />

public void surfaceDestroyed(SurfaceHolder holder) {<br />

try {<br />

ball.setSize(0, 0);<br />

thread .safeStop();<br />

} finally {<br />

thread = null;<br />

}<br />

}<br />

private class MyThread extends Thread {<br />

private volatile boolean running = true;<br />

public void run() {<br />

while (running) {<br />

try {<br />

TimeUnit.MILLISECONDS.sleep(5);<br />

draw();<br />

ball.updatePhysics();// update ตำแหน่งของลูกบอล<br />

บทที ่ 13 การใช้งานเซนเซอร์ (Sensor) ใน <strong>Android</strong> 279

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

Saved successfully!

Ooh no, something went wrong!