<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>中文 &#187; strangefx</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/author/strangefx/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Sat, 26 May 2012 06:34:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>java 打砖块游戏初稿</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/11/16/java-9/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/11/16/java-9/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 03:24:20 +0000</pubDate>
		<dc:creator>strangefx</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[游戏]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/11/16/java-9/</guid>
		<description><![CDATA[  01.package test; 02. 03.import java.awt.*; 04.import java.awt.event.*; 05. 06.import javax.swing.Timer; 07.import java.util.Random; 08. 09. 10.public class PinBang { 11. //define table size 12. private final int TABLE_WIDTH=300; 13. private final int TABLE_HEIGHT=400; 14. //define ball size 15. private final int BALL_SIZE=16; 16. //define packet size 17. private final int PACKET_WIDTH=60; 18. private final int [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>01.package test;<br />
02.<br />
03.import java.awt.*;<br />
04.import java.awt.event.*;<br />
05.<br />
06.import javax.swing.Timer;<br />
07.import java.util.Random;<br />
08.<br />
09.<br />
10.public class PinBang {<br />
11. //define table size<br />
12. private final int TABLE_WIDTH=300;<br />
13. private final int TABLE_HEIGHT=400;<br />
14. //define ball size<br />
15. private final int BALL_SIZE=16;<br />
16. //define packet size<br />
17. private final int PACKET_WIDTH=60;<br />
18. private final int PACKET_HEIGHT=20;<br />
19. //define packet vertical position<br />
20. private final int PACKET_Y=340;<br />
21.<br />
22. Random rand=new Random();<br />
23.<br />
24. //vertical speed<br />
25. private int ySpeed=10;<br />
26. // create an rate<br />
27. private double rate=rand.nextDouble()-0.5;<br />
28. //calculate horizontal speed<br />
29. private int xSpeed=(int)(ySpeed*rate*2);<br />
30. //ball position<br />
31. private int ballX=rand.nextInt(200)+20;<br />
32. private int ballY=rand.nextInt(10)+20;<br />
33. //packet position<br />
34. private int packetX=rand.nextInt(200)+20;<br />
35. // is Game Over?<br />
36. private boolean isLose=false;<br />
37. // Frame<br />
38. private Frame f=new Frame("PinBang");<br />
39. //Canvas<br />
40. private Canva c=new Canva();<br />
41. //Timer<br />
42. private Timer timer;<br />
43. //restart<br />
44. private Button btnRestart=new Button("Restart");<br />
45. class Canva extends Canvas<br />
46. {<br />
47. /**<br />
48. *<br />
49. */<br />
50. private static final long serialVersionUID = 1L;<br />
51.<br />
52. @Override<br />
53. public void paint(Graphics g) {<br />
54. // TODO Auto-generated method stub<br />
55. if(isLose==true)<br />
56. {<br />
57. g.setColor(new Color(255,0,0));<br />
58. g.setFont(new Font("TIMES",Font.BOLD,30));<br />
59. g.drawString("Game Over", 50, 200);<br />
60. restartGame();<br />
61. }<br />
62. else<br />
63. {<br />
64. g.setColor(new Color(240,240,80));<br />
65. g.fillOval(ballX, ballY, BALL_SIZE, BALL_SIZE);<br />
66. g.setColor(new Color(80,80,200));<br />
67. g.fillRect(packetX, PACKET_Y, PACKET_WIDTH, PACKET_HEIGHT);<br />
68. }<br />
69. }<br />
70. }<br />
71.<br />
72. public void iniGame()<br />
73. {<br />
74. c.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));<br />
75. f.add(c);<br />
76.<br />
77. KeyAdapter keyProcessor=new KeyAdapter() {<br />
78. @Override<br />
79. public void keyPressed(KeyEvent e) {<br />
80. // TODO Auto-generated method stub<br />
81. //super.keyPressed(e);<br />
82. if(e.getKeyCode()==KeyEvent.VK_LEFT)<br />
83. {<br />
84. if(packetX&gt;0)<br />
85. {<br />
86. packetX-=10;<br />
87. }<br />
88. }<br />
89. if(e.getKeyCode()==KeyEvent.VK_RIGHT)<br />
90. {<br />
91. if(packetX&lt;=TABLE_WIDTH-PACKET_WIDTH)<br />
92. {<br />
93. packetX+=10;<br />
94. }<br />
95. }<br />
96. }<br />
97. };<br />
98. // add key event listener<br />
99. f.addKeyListener(keyProcessor);<br />
100. c.addKeyListener(keyProcessor);<br />
101.<br />
102. ActionListener taskPerformer=new ActionListener() {<br />
103.<br />
104. @Override<br />
105. public void actionPerformed(ActionEvent e) {<br />
106. // TODO Auto-generated method stub<br />
107. if(ballX=TABLE_WIDTH-BALL_SIZE)<br />
108. {<br />
109. xSpeed=-xSpeed;<br />
110. }<br />
111. if(ballY&gt;PACKET_Y&amp;&amp;(ballXpacketX+PACKET_WIDTH))<br />
112. {<br />
113. timer.stop();<br />
114. isLose=true;<br />
115. c.repaint();<br />
116. }<br />
117. if(ballYPACKET_Y&amp;&amp;ballX&gt;packetX&amp;&amp;ballX&lt;packetX+PACKET_WIDTH))<br />
119. {<br />
120. ySpeed=-ySpeed;<br />
121. }<br />
122.<br />
123. ballY+=ySpeed;<br />
124. ballX+=xSpeed;<br />
125. c.repaint();<br />
126. }<br />
127. };<br />
128.<br />
129. f.addWindowListener(new WindowAdapter() {<br />
130. @Override<br />
131. public void windowClosing(WindowEvent e) {<br />
132. // TODO Auto-generated method stub<br />
133. //super.windowClosing(e);<br />
134. System.exit(0);<br />
135. }<br />
136. });<br />
137.<br />
138. timer=new Timer(100, taskPerformer);<br />
139. timer.start();<br />
140.// System.out.println("Here");<br />
141. f.add(btnRestart,BorderLayout.SOUTH);<br />
142. btnRestart.setEnabled(false);<br />
143. f.pack();<br />
144. f.setVisible(true);<br />
145. }<br />
146.<br />
147. public void restartGame()<br />
148. {<br />
149. btnRestart.setEnabled(true);<br />
150. btnRestart.addActionListener(new ActionListener() {<br />
151.<br />
152. @Override<br />
153. public void actionPerformed(ActionEvent e) {<br />
154. // TODO Auto-generated method stub<br />
155. new PinBang().iniGame();<br />
156.// timer.stop();<br />
157.// isLose=false;<br />
158.// ballX=150;<br />
159.// ballY=20;<br />
160.// iniGame();<br />
161. }<br />
162. });<br />
163.<br />
164. }<br />
165.<br />
166.<br />
167.<br />
168. public static void main(String[] args)<br />
169. {<br />
170. new PinBang().iniGame();<br />
171. }<br />
172.<br />
173.}</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/11/16/java-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

