java实现 swing模仿金山打字 案例源码
java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网。http://java.662p.com
代码:
<font size="3">import Java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
public class Main {
public char c; //苹果上的字母
public int x = 60, y = 0; // 敌人出现的坐标
public final int XSPEED=5,YSPEED=2; //苹果xy方向移动的速度
public int center; //初始中心值
public boolean turnleft = true; //是否向左移动
public boolean alive = true; //是否活着
public Random ran = new Random(); //随机数的种子 public TypeFrame tf=null; //所属的框架
public Image appleimg = null; //苹果的图片
public Image bg = Toolkit.getDefaultToolkit().getImage("bg.jpg"); //背景图片 public Main(TypeFrame tf) {
this.tf=tf;
x = randomlocation(); //得到随机合格的随机x坐标
y=ran.nextInt(20); //得到随机的y坐标
if(ran.nextInt(2)==0){
turnleft=true;
}else
{
turnleft=false;
}
center = x; //设置初始中心值为x
c=randomchar(); //得到随机的字母值
try {
appleimg = ImageIO.read(new File("apple.gif")); //苹果的图片
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public void draw(Graphics g) {
Color color = g.getColor(); //得到上下文颜色
g.setColor(Color.red); //设置上下文颜色
g.setFont(new Font("Dialog", 4, 40)); //设置字体 if (alive) {
g.drawImage(appleimg, x, y, null); //绘制苹果图片
g.drawString(c+ "", x + 20, y + 60); //绘制苹果字母
}
g.setColor(color); //将上下文颜色设置回去
} public int randomlocation(){ //产生苹果的随机横坐标的函数
int x1=ran.nextInt(TypeFrame.GAME_WIDTH - 40);
for (int i = 0; i < tf.apples.size(); i++) {
if(Math.abs(x1-tf.apples.get(i).x)<60){
return randomlocation();
}
}
return x1;
} public char randomchar(){ //产生不与存在的苹果字母相同的字母的方法
char ch=(char)('a'+ran.nextInt(26));
for (int i = 0; i < tf.apples.size(); i++) {
if(ch==tf.apples.get(i).c)
return randomchar();
}
return ch;
}
} </font>
详细说明:http://java.662p.com/thread-3680-1-1.html
java实现 swing模仿金山打字 案例源码的更多相关文章
- android向web提交参数的4种方式总结,附带网站案例源码
第一种:基于http协议通过get方式提交参数 1.对多个参数的封装 public static String get_save(String name, String phone) { /** * ...
- ThreadLocal 简介 案例 源码分析 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- JAVA模拟Spring实现IoC过程(附源码)
前言:本人大四学生,第一次写博客,如果有写得不好的地方,请大家多多指正 一.IoC(Inversion of Control)反转控制 传统开发都是需要对象就new,但这样做有几个问题: 效率低下,创 ...
- SpringBoot 项目搭建(详细介绍+案例源码)
SpringBoot 项目搭建 SpringBoot 项目整合源码 SpringBoot 项目整合 一.项目准备 1.1 快速创建 SpringBoot 项目 1.2 标准项目结构图如下 1.3 添加 ...
- Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 06 Stack详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 05 Vector详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
随机推荐
- JAVA数据类型自动转换,与强制转换
一.数据类型自动转换 public class Test{ public static void main(String[] args){ int a = 1; double b = 1.5; dou ...
- [ActionScript 3.0] Away3D 灯光的使用
package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEv ...
- sql如何获取一个时间段内的月份
),) from master..spt_values where type='P' and dateadd(month,number,'2010-01-01')<='2010-09-01' / ...
- POJ题目分类(转)
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. ...
- Mingyang.net:java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()
使用hibernate-validator校验数据模型时报出如下异常: java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInsta ...
- Redis链接上不的问题
问题描述: 同样配置的redis及系统环境,在两台服务器(A.B两台服务)上部署,但是其中一台(A),运行一段时间,就链接不上了,从开始运行redis到redis链接不上,这个时间间隔,不一定有时候是 ...
- ubuntu 服务管理
在Linux系统下,一个Services的启动.停止以及重启通常是通过/etc/init.d目录下的脚本来控制的.然而,在启动或改变运行级别时,是在/etc/rcX.d中来搜索脚本.其中X是运行级别的 ...
- Oracle 版本历史
1.数据库在项目开发里面,大多数都使用Oracle,什么8i,9i,10G,11g等,一直认为数据库版本的升级对于开发一个系统的开发人员来书,不是什么重要的事,我仅仅关注数据库的表结构以及存储过程或者 ...
- PHP过滤HTML标签的三种方法
在做项目的过程中,我们经常需要用到过滤一些html标签来实现提高数据的安全性,其实就是删除那些对应用程序有潜在危害的数据.它用于去除标签以及删除或编码不需要的字符.首先分享一些比较常见的 $str=p ...
- bochs安装一系列问题
http://blog.chinaunix.net/uid-23817499-id-3418083.html http://www.mouseos.com/os/tools/bochs.html ...