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代码画乌龟,还要能让它爬。相关推荐

  1. python海龟绘图画五角星_海龟绘图代码_python乌龟画图五角星

    海龟绘图代码,python乌龟画图五角星 教学目标: 1.熟悉PU.PD.HT.ST.PE.HOME等命令的用法 2.熟悉SS.FS.TS命令的功能和用法 教学重点: 教学目标1.2 教学课时: 2课 ...

  2. java 推广海报_使用java画一张海报

    PS: 没找到合适的海报背景,就随便找了一张,使用技术都是相同的 1. 添加依赖 这俩其实跟本章节的核心技术没有关系,是为了获取QQ昵称和QQ头像而引入的. org.jsoup jsoup 1.11. ...

  3. java 坦克重叠_【Java】我所知道坦克大战(单机版)之画出坦克的实心圆、让圆动起来、双缓冲解决闪烁问题...

    28640发布于 今天 02:47 本篇文章目的 画出坦克的实心圆 让坦克圆动起来 双缓冲解决闪烁问题 一.画出代表坦克的实心圆 我们需要画出一个圆,那么可以使用fillOval方法 fillOval ...

  4. 用java编程画机器猫_用JAVA编程:编写GUI程序,模拟龟兔赛跑游戏

    匿名用户 7级 2012-05-28 回答 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impor ...

  5. java graphics画圆_在Java中绘制一个漂亮的圆圈

    我正在使用 Java Graphics而且我一直在变得"丑陋". 这是我的Java程序所做的 这是在Matlab中做的同样的事情 我认为Java显然不像Matlab那样" ...

  6. java画笑脸_用java编写一个颜色为红色,粗线型的笑脸和哭脸,需要继承JFrame类,用java中的绘制图形做...

    展开全部 /* * Copyright (c) cherry  Co. Ltd. * All right reserved. */ package com.cherry.swing; import j ...

  7. java左手画圆右手画方_作文:左手画圆,右手画方

    左手画圆,右手画方 相关内容: 星期天晚上,爸爸叫我在白纸上画几个圆.要我把几个圆画一样大小,还要画的非常圆.我在白纸上连续画了几个圆,可是每个圆的大小都不一样,画出的圆根本不圆.这是怎么回事呢?虽然 ...

  8. 用java编写在界面中画圆_用java语言编写画随机的圆 十万火急 求大神帮忙!!!...

    展开全部 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt ...

  9. java web源代码_检测Java Web应用程序而无需修改其源代码

    java web源代码 与其他系统进行交互时,大多数Java Web应用程序都使用标准Java接口. 诸如Web页面或REST服务器之类的基于HTTP的服务是使用接口javax.servlet.Ser ...

最新文章

  1. Hazelcast分布式
  2. 进击的 Kubernetes 调度系统(一):Kubernetes scheduling framework
  3. C++设计模式之 简单工厂模式讲解(历史上最简单明白的例子)
  4. sklearn 机器学习 Pipeline 模板
  5. 阿里带火的中台,究竟是个啥?
  6. 《Effective Python 2nd》——推导与生成
  7. [翻译]AppSettings In web.config by K.Scott Allen
  8. 给apk去签名、重新签名
  9. 空间变换网络(STN)
  10. 玩转华为ENSP模拟器系列 | 配置L3VdPdNd迭代SR-BE隧道示例
  11. 大赞!像 Github 一样管理你的 Word 文档
  12. 弧形背景html,弧形背景墙—弧形背景墙相关知识介绍
  13. 证券交易买进卖出手续费公式
  14. 余弦公式在c语言里面怎么用_C语言中求余弦值的相关函数总结
  15. 如何把一组计算机做成云,怎样才能把旧电脑变成云电脑呢?
  16. 微信多群直播机器人平台(一起学堂)
  17. 解决Office Word复制粘贴时自动加空格的问题
  18. DSSS|直接系列扩频技术
  19. Echarts实现男女比例图表
  20. RactNative---react-native-storage使用

热门文章

  1. 【Framework】透视Android中的Handler
  2. 什么是雪崩什么是击穿?
  3. 摄像头在线测试_Leez学院| 面部检测 精准可靠 Leez P515 OpenCV工程测试
  4. kali系统升级(包含软件信息、所有软件、整个系统)
  5. 踏浪点神:恒指期货交易的基础就是守拙
  6. SpringCloud集成微信支付
  7. oracle 聚合函数 条件,Oracle PLSQL之HAVING后面的条件可由聚合函数构成,也可由GROUP BY后的字段构成...
  8. error LNK2001: 无法解析的外部符号 解决方法
  9. 两张二维人物图像互相换脸代码
  10. php 按比例裁剪图片,自定义裁剪图片大小,按照一定比例裁剪图片的软件