经过几次做项目的训练,确实感觉到,做项目是提高java水平最有效的方法。当我拿到一个项目,首先我会想,这个项目会用到什么方法,哪些是会的,哪些是不会的。因此,项目的制作和总结是一个发现问题和解决问题的过程。java的学习也正是在问题不断的发现和解决中进行的。
这些都是题外话。下面我就谈谈这次射击弹球项目的所得。
首先,使我对多线程有了初步的了解。清楚
Thread Runable TimerTask三种实现线程的方法。方法就不解释了,资料丰富都可以找到。
其次,学习了新的组件
JProgressBar JSlider的使用方法。。。JProgressBar 常用的构造器JProgressBar(int orient, int min, int max) 创建使用指定方向、最小值和最大值的进度条。常用的方法getValue setValue得到设置进度条的值setBorderPainted以及setStringPrinted。我们在使用进度条时同时使用
javax.swing包下的timer定时器(要注意定时器有很多种不同包下的不同) 来配合进度条值的改变。timer的构造器Timer(int delay, ActionListener listener) ,每隔delay毫秒运行一次listener,可以这样实现进度条值的改变。运行时不要忘了使用timer的start方法。。。。JSlider的方法有很多和JProgressBar类似,这里我说一下增加标记和更改标记值的方法,setMajorTickSpacing(int n) 设置主刻度间隔,setMinorTickSpacing(int n) 设置次刻度间隔,setLabelTable(Dictionary labels)更改刻度值。详细的内容大家可以去查资料。。
然后,对
双缓冲(解决频繁repaint的闪屏问题)有了初步的了解,大概思路是新建一个线程不停地进行双缓冲update。具体情况大家可以参考
http://stchou.iteye.com/blog/810701
最后,初步了解了
robot,toolkit的某些方法。可以实现捕捉桌面全透明界面的效果。代码如下:
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JWindow;
import com.sun.awt.AWTUtilities;
public class Test extends JFrame implements MouseListener {
BufferedImage image;
Robot robot;
public static void main(String args[]) {
Test test = new Test();
test.showUI();
}
public void showUI() {
Toolkit toolkit = Toolkit.getDefaultToolkit();
Rectangle rectangle = new Rectangle(toolkit.getScreenSize());
try {
robot = new Robot();
image = robot.createScreenCapture(rectangle);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
// AWTUtilities.setWindowOpacity(this, 0f);
this.setVisible(true);
this.addMouseListener(this);
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(image, 0, 0, null);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
int x = e.getX();
int y = e.getY();
System.out.println(robot.getPixelColor(x, y));
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
呵呵,经过这次项目,大概掌握的就差不多这些吧。。。。小球射击游戏的源码以附件形式上传
分享到:
相关推荐
在本项目“射击弹球小游戏”中,开发者通过实践学习并掌握了多项重要的IT技术与编程概念,这将有助于深入理解游戏开发的过程以及软件工程的基本原理。以下是对该项目中涉及的知识点的详细阐述: 1. **游戏引擎基础*...
《弹球游戏:深入探索射击类小游戏开发》 在计算机游戏中,弹球游戏以其独特的玩法和简单的操作,深受玩家喜爱。这种类型的游戏通常涉及到物理模拟、碰撞检测以及玩家的反应速度,是编程初学者和游戏开发者热衷的...
python 弹球小游戏,可沿任意方向运动,颜色也可根据自己喜好改
Java弹球小游戏.zipJava弹球小游戏.zipJava弹球小游戏.zipJava弹球小游戏.zip Java弹球小游戏.zipJava弹球小游戏.zipJava弹球小游戏.zipJava弹球小游戏.zip Java弹球小游戏.zipJava弹球小游戏.zipJava弹球小游戏.zip...
总结,弹球小游戏虽然看似简单,但它涵盖的编程知识广泛,包括图形界面设计、游戏逻辑实现、音效处理、异常处理等多个方面。通过完成这样一个项目,学生可以巩固基础知识,提升实际编程技能,并体验到游戏开发的乐趣...
**VB编写弹球小游戏**是初学者学习编程和可视化基础的一个理想项目,它结合了基本的编程概念与游戏设计的趣味性。Visual Basic(VB)是Microsoft开发的一种面向对象的编程语言,以其直观的界面和易学性而受到欢迎,...
【Android Studio小游戏:弹球小游戏】是基于Android开发平台,使用Android Studio集成开发环境创建的一款简单而有趣的休闲游戏。这个游戏通常包含一个弹球和多个障碍物,玩家通过控制挡板来反射弹球,避免弹球掉落...
【弹球小游戏】是一款使用Visual Basic(VB)编程语言编写的儿童智力开发软件。VB是Microsoft公司推出的一种面向对象的编程工具,它以其简洁的语法和直观的编程环境深受初学者喜爱,尤其适合用于开发教育类的小型...
【弹球小游戏源码】是一款基于Java编程语言开发的小型游戏项目,主要涵盖了游戏逻辑、图形界面和事件处理等核心知识点。在这个项目中,开发者利用Java的Swing库或者JavaFX库来创建用户界面,通过Java的面向对象编程...
本文将深入探讨一个使用Java语言实现的弹球小游戏,这是一款非常适合进行毕业设计、课程设计或者个人技能提升的项目。通过分析这个项目,我们可以了解Java在游戏开发中的应用,并学习到相关的核心技术。 首先,让...
这是一个基于python3的弹球游戏实例。充分运用python外部模块tkinter的功能。无外部图片。适合刚接触python的朋友学习tk的特性。
总的来说,这个弹球小游戏项目是一个很好的实践平台,它涵盖了面向对象设计的基本要素,如类、对象、属性、方法、继承、封装、多态等,同时通过实际的交互体验帮助开发者理解这些概念如何应用于实际编程中。...
总结来说,桌上弹球小游戏的实现涵盖了动画原理、物体属性(如位置、速度)、碰撞检测、物理模拟(如重力)以及用户交互等多个方面。通过学习和实践,不仅能掌握游戏开发的基本技能,还能对计算机图形学和物理学有更...
在弹球游戏中,可能会遇到碰撞检测、分数计算等问题,这些问题可能涉及到多个线程的交互。Java提供了多种同步机制,如`synchronized`关键字、`wait()`、`notify()`和`notifyAll()`方法以及`java.util.concurrent`包...
总的来说,"弹球小游戏键盘操控"涉及了物理模拟、事件驱动编程、输入设备交互、游戏逻辑判断等多个IT领域的知识。开发者需要具备良好的编程技能,理解基本的物理原理,并能够将这些元素融合在一起,创造出有趣且具有...
对于初学者来说,安卓平台上的弹球小游戏是一个很好的学习项目,因为它涉及到许多基础的编程概念,同时又有一定的趣味性。这个源代码提供了实现这样一个游戏的基本框架,让我们来深入了解一下其中包含的关键知识点。...
【标题】"弹球小游戏.zip" 是一个包含有弹球小游戏源代码的压缩包,它提供了实现...以上就是关于"弹球小游戏.zip"压缩包所涉及的IT知识点,无论是对于提升编程技能,还是深入理解Java游戏开发,都有很高的学习价值。
总结,"目标弹球"小游戏是Android游戏开发的一个实例,它融合了Android UI设计、物理引擎应用、用户交互处理、资源管理和游戏逻辑等多个关键知识点,对于想要学习Android游戏开发的程序员来说,这是一个很好的学习...
【Android 弹球小游戏】是一款基于安卓平台的简单游戏,主要设计用于开发者进行技术实践,尤其是对于初学者,它提供了一个学习和理解Android开发中关键概念的实例。这款游戏的实现涉及了多个Android开发的重要知识点...