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 ...
随机推荐
- 防止sql注入。xss攻击 方法
//防止sql注入.xss攻击 /** * 过滤参数 * @param string $str 接受的参数 * @return string */ publ ...
- C#异步编程 z
http://www.cnblogs.com/fangyz/p/5134018.html 从.NET4.5开始,用async和await关键字再加上Task.Run是一个非常不错的异步编程模型. 1. ...
- request.setCharacterEncoding 和常用内置对象 跳转
1.直接转码 new String(name.getBytes("ISO8859_1"),"GBK") 2. request.setCharactorEncod ...
- [Java] java中的异常处理-续
异常处理器,它由try, catch, finally以及随后的程序块组成.finally不是必须的. catch的括号有一个参数,代表所要捕捉的异常的类型.catch会捕捉相应的类型及其衍生类.tr ...
- Java中的Comparable<T>和Comparator<T>接口
有的时候在面试时会被问到Comparable<T>和Comparator<T>的区别(或者Java中两种排序功能的实现区别). 1) 在使用普通数组的时候,如果想对数据进行排序 ...
- Windows server 2008 下iis7 架设ftp服务器
架设了一天的ftp服务器,终于搞定了. 按着windows server 2003的思路在windows server 2008把ftp设置好后,登录过程老是出现:530 User cannot lo ...
- 在viewPager中的textview参数singleLine和gravity为center冲突bug
在viewPager中有textview. 当textview的参数为singleLine和gravity为center时, onfling事件将会被读取为onclick事件. 这是andriod的一 ...
- Spring的java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!异常处理方法
使用Spring提供的模板类HibernateDaoSupport,如果单纯的使用'命名参数'的形式编写HQL语句如: public class UserDaoImpl extends Hiberna ...
- iptable怎么用?
iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j DROP [拒绝转发来自10.0.0.0/8网段,目的端口是80的数据包]
- 机器学习算法一:K-近邻算法
最近在<机器学习实战>里学习了一些基本的算法,对于一个纯新手我也在网上找了写资料,下面就我在书上所看的加上在其他博客上的内容做一个总结,博客请参照http://www.cnblogs.co ...