java画乌龟_用java代码画乌龟,还要能让它爬。
2016-03-18 回答
import java.awt.borderlayout;
import java.awt.color;
import java.awt.dimension;
import java.awt.graphics;
import java.awt.graphics2d;
import java.awt.event.mouseevent;
import java.awt.event.mouselistener;
import javax.swing.jframe;
import javax.swing.jpanel;
publicclass test extends jframe
{
/** serial */
privatestaticfinallongserialversionuid = 1l;
booleanmousetag = false;
booleancrosstag = false;
intepointx = 0;
intepointy = 0;
inttype = 0;
intxdir = 10;
intxdir1 = 21;
intydir1 = 113;
intxdir2 = 10;
intydir2 = 110;
jpanel panel = null;
jpanel carpanel = null;
thread drawthread = null;
thread carthread = null;
public test()
{
panel = new jpanel()
{
/** serial */
privatestaticfinallongserialversionuid = 1l;
@override
publicvoid paint(graphics g)
{
super.paint(g);
graphics2d g2 = (graphics2d) g;
g2.drawstring("你是我的小龟!", 200, 20);
// 十字路口
g2.drawline(138, 0, 138, 90);
g2.drawline(0, 90, 138, 90);
g2.drawline(0, 150, 138, 150);
g2.drawline(138, 150, 138, 270);
g2.drawline(330, 0, 330, 90);
g2.drawline(330, 90, 490, 90);
g2.drawline(330, 150, 330, 270);
g2.drawline(330, 150, 490, 150);
switch (type)
{
case 0:
g2.setcolor(color.red);
g2.fillroundrect(10, 10, 22, 22, 90, 90);
g2.setcolor(color.green);
g2.fillroundrect(10, 35, 22, 22, 90, 90);
g2.setcolor(color.yellow);
g2.fillroundrect(10, 60, 22, 22, 90, 90);
break;
case 1:
g2.setcolor(color.green);
g2.fillroundrect(10, 10, 22, 22, 90, 90);
g2.setcolor(color.red);
g2.fillroundrect(10, 35, 22, 22, 90, 90);
g2.setcolor(color.yellow);
g2.fillroundrect(10, 60, 22, 22, 90, 90);
break;
case 2:
g2.setcolor(color.green);
g2.fillroundrect(10, 10, 22, 22, 90, 90);
g2.setcolor(color.yellow);
g2.fillroundrect(10, 35, 22, 22, 90, 90);
g2.setcolor(color.red);
g2.fillroundrect(10, 60, 22, 22, 90, 90);
break;
default:
break;
}
// car
g2.setcolor(color.green);
g2.filloval(xdir1, ydir1, 8, 8);
g2.setcolor(color.black);
g2.filloval(xdir2, ydir2, 12, 12);
// mouse round
if (mousetag)
{
g2.setcolor(color.red);
g2.drawoval(epointx - 12, epointy - 35, 20, 20);
g2.drawline((xdir1 + xdir2) / 2 + 6, (ydir2 + 6),
epointx - 6, epointy - 25);
xdir1 = (xdir1 + xdir2) / 2 + 6;
ydir1 = (ydir1 + 6);
}
if (crosstag)
{
g2.setcolor(color.red);
g2.drawstring("哎哟!", xdir1, ydir1);
}
}
};
drawthread = new thread()
{
@override
publicvoid run()
{
while (true)
{
try
{
thread.sleep(1000);
if (type == 0)
{
type = 1;
}
elseif (type == 1)
{
type = 2;
}
elseif (type == 2)
{
type = 0;
}
panel.repaint(0, 0, 50, 100);
}
catch (interruptedexception e)
{
e.printstacktrace();
}
}
}
};
add(panel, borderlayout.center);
if (drawthread.getstate() == thread.state.runnable)
{
return;
}
else
{
drawthread.start();
}
// ///
carthread = new thread()
{
@override
publicvoid run()
{
while (true)
{
try
{
// 自由开,遇到障碍物拐弯
freeruncar();
thread.sleep(50);
repaint();
}
catch (interruptedexception e)
{
}
}
}
privatevoid freeruncar()
{
// 前进方向
if (epointx > xdir2)
{
xdir1 = xdir2 + 8;
if (xdir2 > 480)
xdir2 = 0;
xdir2 += 1;
}
elseif (epointx 480)
xdir2 = 0;
xdir2 -= 1;
}
elseif (epointx == xdir2)
{
xdir1 = xdir2;
if (xdir2 > 480)
xdir2 = 0;
xdir2 -= 1;
}
if (epointy - 25 > ydir2)
{
ydir1 = ydir2 + 8;
if (ydir2 > 330)
ydir2 = 0;
ydir2 += 1;
}
elseif (epointy - 25 330)
ydir2 = 0;
ydir2 -= 1;
}
elseif (epointy - 25 == ydir2)
{
ydir1 = ydir2;
if (ydir2 > 330)
ydir2 = 0;
ydir2 -= 1;
}
// 碰撞检测 138, 90/ 138, 150/330, 90/330, 150
if (xdir1 <= 138 && ydir1 <= 90)
{
crosstag = true;
}
elseif (xdir1 <= 138 && ydir1 >= 150)
{
crosstag = true;
}
elseif (xdir1 >= 330 && ydir1 <= 90)
{
crosstag = true;
}
elseif (xdir1 >= 330 && ydir1 >= 150)
{
crosstag = true;
}
else
{
crosstag = false;
}
if (crosstag)
{
epointx = 250;
}
}
};
if (carthread.getstate() == thread.state.runnable)
{
return;
}
else
{
carthread.start();
}
// 鼠标thread
final thread mousethread = new thread()
{
@override
publicvoid run()
{
while (true)
{
if (mousetag)
{
}
}
}
@override
publicvoid interrupt()
{
mousetag = false;
}
};
if (mousethread.getstate() == thread.state.runnable)
{
return;
}
else
{
mousethread.start();
}
this.addmouselistener(new mouselistener()
{
@override
publicvoid mouseclicked(mouseevent e)
{
//system.out.println(e.getx() + ", " + e.gety());
}
@override
publicvoid mousereleased(mouseevent e)
{
epointx = e.getpoint().x;
epointy = e.getpoint().y;
mousetag = false;
}
@override
publicvoid mousepressed(mouseevent e)
{
epointx = e.getpoint().x;
epointy = e.getpoint().y;
mousetag = true;
}
@override
publicvoid mouseexited(mouseevent e)
{
}
@override
publicvoid mouseentered(mouseevent e)
{
}
});
}
publicstaticvoid main(string[] args)
{
test test = new test();
test.setsize(new dimension(500, 300));
test.setlocationrelativeto(null);
test.setdefaultcloseoperation(jframe.exit_on_close);
test.setresizable(false);
test.setvisible(true);
}
}
java画乌龟_用java代码画乌龟,还要能让它爬。相关推荐
- python海龟绘图画五角星_海龟绘图代码_python乌龟画图五角星
海龟绘图代码,python乌龟画图五角星 教学目标: 1.熟悉PU.PD.HT.ST.PE.HOME等命令的用法 2.熟悉SS.FS.TS命令的功能和用法 教学重点: 教学目标1.2 教学课时: 2课 ...
- java 推广海报_使用java画一张海报
PS: 没找到合适的海报背景,就随便找了一张,使用技术都是相同的 1. 添加依赖 这俩其实跟本章节的核心技术没有关系,是为了获取QQ昵称和QQ头像而引入的. org.jsoup jsoup 1.11. ...
- java 坦克重叠_【Java】我所知道坦克大战(单机版)之画出坦克的实心圆、让圆动起来、双缓冲解决闪烁问题...
28640发布于 今天 02:47 本篇文章目的 画出坦克的实心圆 让坦克圆动起来 双缓冲解决闪烁问题 一.画出代表坦克的实心圆 我们需要画出一个圆,那么可以使用fillOval方法 fillOval ...
- 用java编程画机器猫_用JAVA编程:编写GUI程序,模拟龟兔赛跑游戏
匿名用户 7级 2012-05-28 回答 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impor ...
- java graphics画圆_在Java中绘制一个漂亮的圆圈
我正在使用 Java Graphics而且我一直在变得"丑陋". 这是我的Java程序所做的 这是在Matlab中做的同样的事情 我认为Java显然不像Matlab那样" ...
- java画笑脸_用java编写一个颜色为红色,粗线型的笑脸和哭脸,需要继承JFrame类,用java中的绘制图形做...
展开全部 /* * Copyright (c) cherry Co. Ltd. * All right reserved. */ package com.cherry.swing; import j ...
- java左手画圆右手画方_作文:左手画圆,右手画方
左手画圆,右手画方 相关内容: 星期天晚上,爸爸叫我在白纸上画几个圆.要我把几个圆画一样大小,还要画的非常圆.我在白纸上连续画了几个圆,可是每个圆的大小都不一样,画出的圆根本不圆.这是怎么回事呢?虽然 ...
- 用java编写在界面中画圆_用java语言编写画随机的圆 十万火急 求大神帮忙!!!...
展开全部 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt ...
- java web源代码_检测Java Web应用程序而无需修改其源代码
java web源代码 与其他系统进行交互时,大多数Java Web应用程序都使用标准Java接口. 诸如Web页面或REST服务器之类的基于HTTP的服务是使用接口javax.servlet.Ser ...
最新文章
- Hazelcast分布式
- 进击的 Kubernetes 调度系统(一):Kubernetes scheduling framework
- C++设计模式之 简单工厂模式讲解(历史上最简单明白的例子)
- sklearn 机器学习 Pipeline 模板
- 阿里带火的中台,究竟是个啥?
- 《Effective Python 2nd》——推导与生成
- [翻译]AppSettings In web.config by K.Scott Allen
- 给apk去签名、重新签名
- 空间变换网络(STN)
- 玩转华为ENSP模拟器系列 | 配置L3VdPdNd迭代SR-BE隧道示例
- 大赞!像 Github 一样管理你的 Word 文档
- 弧形背景html,弧形背景墙—弧形背景墙相关知识介绍
- 证券交易买进卖出手续费公式
- 余弦公式在c语言里面怎么用_C语言中求余弦值的相关函数总结
- 如何把一组计算机做成云,怎样才能把旧电脑变成云电脑呢?
- 微信多群直播机器人平台(一起学堂)
- 解决Office Word复制粘贴时自动加空格的问题
- DSSS|直接系列扩频技术
- Echarts实现男女比例图表
- RactNative---react-native-storage使用
热门文章
- 【Framework】透视Android中的Handler
- 什么是雪崩什么是击穿?
- 摄像头在线测试_Leez学院| 面部检测 精准可靠 Leez P515 OpenCV工程测试
- kali系统升级(包含软件信息、所有软件、整个系统)
- 踏浪点神:恒指期货交易的基础就是守拙
- SpringCloud集成微信支付
- oracle 聚合函数 条件,Oracle PLSQL之HAVING后面的条件可由聚合函数构成,也可由GROUP BY后的字段构成...
- error LNK2001: 无法解析的外部符号 解决方法
- 两张二维人物图像互相换脸代码
- php 按比例裁剪图片,自定义裁剪图片大小,按照一定比例裁剪图片的软件