首页 欧洲联赛正文

发育迟缓,喜爱玩游戏!学习java就能制造游戏,你试试不?,柳宗元

导言


开挂

每个人或多或少的都玩过游戏,有些人天然生成是打游戏的料,而有些人则是手残。所以想着当个程序员,开发一款归于自己的游戏,不高兴湿漉漉了就随意修正游戏的特点,横竖你说了算!固执!


抱负与实际的

间隔

抱负:局局吃鸡MVP

实际:落地成盒MMP

你自己写游戏也是这样,一上手就想写个某农药的小游戏是不可能滴,不如先写个贪吃蛇?连连看?亦或是俄罗斯方块!横竖便是最根本的贴图游戏。

正文

编贴图游戏的根本进程:

概念:所谓贴图游戏也便是把图片一张一张画到窗体中(包含布景、敌人、障碍物)

制作的时分要用到双缓冲技能,首要创立一张缓冲图片,然后将游戏所需求制作的图片悉数画到缓冲图片中,最终将缓冲图片画到窗体。

意图是为了防止图片闪耀,由于这样每次都是将一张完好的图片制作到窗体,假如将布景、敌人、障碍物等元素逐个制作到窗体的话,由于不同元素制作不是一起的(有先后顺序),所以会发生图片闪耀的现象。

小比如

1. import java.awt.Color;

2. import java.awt.Graphics;

3. import java.awt.image.BufferedImage;

4. import javax.swing.JFrame;

5.

6. public class BaseFrame extends JFrame {

7.

8. /**

9. * 结构函数

10. */

11. public BaseFrame() {

12. thiselixer.setBounds(100, 100, 500, 500); // 设置窗体的方位、巨细

13. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体右上角那个叉关闭程序

14. this.setVisible(true); // 设置窗体可见

15. }

16.

17. /**

18. * 制作办法

19. */

20. public void paint(Graphics gr) {

21. BufferedImage image = new BufferedImage(500, 500,

22. BufferedImage.TYPE_3BYTE_BGR); // 创立一张500*500的缓冲图片

23. Gra南京大学启明网phics g2 = image.getGraphics(); // 获取缓冲图片的画笔

24.

25. /*

26. *

27. * 这里边就能够画东西了,并且时分到image缓冲图片上,想画什么查阅java API里的Graphi团缚cs 例如

28. * g2.drawRect(50, 50, 100, 100);

29. */

30.

31. g2.setColor(Color.WHITE); // 设置画笔色彩

32. g2.drawRect(50, 50, 100, 100);

33. g2.奥克网fillRect(200, 200, 100, 100);

34. 盖世武尊

35. gr.drawImage(image, 0, 0, this); // 将缓冲图片画到窗体上

36. }

37.

38. public static void main(String[] args) {

39. new BaseFrame();

40. }

41.

42. }

编写游戏的根本架构:

创立一个窗体,制作一张缓冲图片到窗体,并且获取到了缓冲图片的画笔,这样你就能够用画笔画你需求的形状fanthful或是图片了。假如想让制作的东西动起来,能够经过参加线程来完结,改动制作物体的坐标,最重要一点不要忘掉repaint。

1. import java.awt.Color;

2. import java.a差人妈妈wt.Graphics;

3. import java.awt.image.BufferedImage;

4.

5. import javax.swing.JFrame;

6.

7. public class BaseFrame extends JFrame implements Runnable {

8.

9. /**

10. * 制作方块x坐标

11. */

12. private int x = 30;

13.

14. /**

15. * 制作方块y坐标

16. */

17. private int y = 30;

18.

19. /**

20. * 结构函数

21. */

22. public BaseFrame() {

23. this.setBounds(100, 100, 500, 500); // 设置窗体的方位、巨细

24. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体右上角那个叉关闭程序

25. this.setVisible(true); // 设置窗体可见

26.

27. Thread thread = new Thread(this); //创立线程

28. thread.start(); //发动线程

29. }

30.

31. /**

32. * 制作办法

33. */

34. 发育缓慢,喜欢玩游戏!学习java就能制作游戏,你试试不?,柳宗元public void paint(Graphics gr) {

35. BufferedImage image = new BufferedImage(500, 500,

36. BufferedImage.TYPE_3BYTE_BGR); // 创立一张500*500的缓冲图片

37. Graphics g2 = image.getGraphics(); // 获取缓冲图片的画笔

38.

39. /*

40. *

41. * 这里边就能够画东西了,并且时分到image缓冲图片上,想画什么查阅java API里的Graphics 例如

42. * g2.drawRect(50, 50, 100, 100);

43. */

44.

45. g2.setColor(Color.WHITE); // 设置画笔色彩

46. g2.fillRect(x, y, 100, 100);

47.

48. gr.drawImage(image, 0, 0, this); // 将缓冲汤忒热图片画到窗体上

49. }

50. 发育缓慢,喜欢玩游戏!学习java就能制作游戏,你试试不?,柳宗元

51. /**

52透视金瞳叶辰全免费. * 线程履行办法

53. */

54. public void run() {

55. try {

56. while (true) {

57. x++;

58. y++;

59. if (x > 400 || y > 400) {

60. x = 0;

61. y = 0;

62. }

63. this.repaint();

64. Thread.sleep(50); //while(true)的循环里一点要记住sleep一会,要不然太可怕了。。。

65. }

66. } catch (InterruptedExcept发育缓慢,喜欢玩游戏!学习java就能制作游戏,你试试不?,柳宗元ion e) {

67. e.printStackTrace();

68. }

69. }

70.

71. public static void main(String[] args) {

72. new BaseFrame();

73. }

74.

75. }

完结了让发育缓慢,喜欢玩游戏!学习java就能制作游戏,你试试不?,柳宗元图片动起来,可是这顶多算是一个动画,由于没有交互性,游戏是人来玩的嘛,这个能够经过参加事情来完结,下面参加一个键盘事情:

1. import java.awt.Color;

2. impogugoolrt java.awt.Graphics;

3. import java.awt.event.KeyEvent;

4. import java.awt.event.KeyListener;

5. import java.awt.image.Bsnh王璐ufferedImage;

6.

7. import javax.swing.JFrame;

8.

9. public class BaseFrame extends JFrame implements Runnable, KeyListener {

10.

11. /**

12. * 制作方块x坐标

13. */

14. private int x = 200;

15.

16. /**

17. * 制作方块y坐标

18. */

19. private int y = 2邹正断腿00;

20.

21. /**

22. * 结构函数

23. */

24. public BaseFrame() {

25. this.setBounds(100, 100, 500, 500); // 设置窗体的方位、巨细

26. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体右上角那个叉关闭程序

27. this.setVisible(true); // 设置窗体可见

28.

29. this.addKeyListener(this); // 增加键盘监听器

30.

31. Thread thread = new Thread(瞎眼蒙this); // 创立线程

32. thread.start(); // 发动线程

33. }

34.

35. /**

36. * 制作办法

37. */

38. public void paint(Graphics gr) {

39. Buffere发育缓慢,喜欢玩游戏!学习java就能制作游戏,你试试不?,柳宗元dImage image = new BufferedImage(500, 500,

40. BufferedImage.TYPE_3BYTE_发育缓慢,喜欢玩游戏!学习java就能制作游戏,你试试不?,柳宗元BGR); // 创立一张500*500的缓冲图片

41. Graphics g2 = image.getGraph猩猩生殖器ics(); // 获取缓冲图片的画笔

42.

43. g2.setColor(Color.WHITE高木斗); // 设置画笔色彩

44. g2.fillRect(x, y, 100, 100);

45.

46. gr.drawImage(image, 0, 0, this); // 将缓冲图片画到窗体上

47. }

48.

49. /**柞木虫

50. * 线程履行办法

51. */

52. public void run() {

53. try {

54. while (true) {

55. this.repaint();

56. Thread.sleep(50);

57. }

58. } catch (InterruptedException e) {

59. e.printStackTrace();

60. }

61. }

62.

63. /** 发育缓慢,喜欢玩游戏!学习java就能制作游戏,你试试不?,柳宗元

64. * 按下时调用

65. */

66. public void keyPressed(KeyEvent e) {

67. int keyCode = e.getKeyCode();

68. // System.out.println(keyCode); // 打印按键的keyCode

69. if (keyCode == 38) { // 上按键

70. y--;

71. }

72. if (keyCode == 40) {假如人生只要八年该怎样过 // 下按键

73. y++;

74. }

75. if (keyCode == 37) { // 左按键

76.软萩粑 x--;

77. }

78. if (keyCode == 39) { // 右按键

79. x++;

80. }

81. }

82.

83. /**

84. * 开释按键时调用

85. */

86. public void keyReleased(KeyEvent e) {

87.

88. }

89. public void keyTyped(KeyEvent e) {

90.

91. }

92.

93. public static void main(String[] args) {

94. new BaseFrame();

95. }

96.

97. }

现在这个程序能够用上下左右按键操控方块移动了,运用这些常识根本能够搞定贪吃蛇、俄罗斯方块了。学习是个逐渐递进的进程,祝你成功。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。