前言
提示:这里可以添加本文要记录的大概内容:
韩顺平教育的java坦克大战
提示:以下是本篇文章正文内容,下面案例可供参考
一、Java绘图技术
1.g.drawOval()是什么?
画椭圆函数g.drawOval(); (宽=高时候为圆形) x和y竟然不是圆心坐标
2.Graphics类
//画图片
//获取图片资源 "/图片名字.png" 表示从该项目的根目录获取图片
//并且提前把图片放在out目录下面的该项目(project)的文件夹里面
Image image=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/图片名字.png"));
g.drawImage(image,左上角坐标x,y,图片宽度,高度,this);
//画字符串 写字
g.setColor(Color.BLUE);//给画笔设置颜色
g.setFont(new Font("隶书",Font.BOLD,50));//设置字体 new Font("字体",是不是初体,大小);
g.drawString("想写的字",100,100); //("",字符串左下角 x,y);
fill3DRect(x,y,w,h,布尔值(用于确定矩形是否显示为高于表面后刻到表面))
3.绘画坦克
4.java事件处理机制
5.线程应用0.3版本
先写一个shot子弹类 实现Runnable ;
然后在Hero类里面创建shot对象以及shotEnemyTank方法调用线程;
在MyPanel里面绘画子弹 实现Runnable 重写run方法 间隔100ms 重绘面板.
6.进阶0.4增加功能
1.让敌人的坦克也能够发射子弹(多辆坦克对应 多发子弹)
我想的是 直接在enemyTank类里面添加射击方法
但是 hsp是在 MyPanel里面创建enemyTank集合的时候给每个Tank直接添加子弹 同时启动
2.当我方坦克击中敌人时,敌人消失,如果有爆炸效果更好
//编写方法 判断我方子弹是否击中敌人坦克 //什么时候调用该方法判断? 应该在run方法中
public static void hitTank(Shot s,EnemyTank enemyTank){
switch (enemyTank.getDirect()){
case 0://上下一样
case 2:
if(s.x>enemyTank.getX()&&s.x<enemyTank.getX()+40
&&s.y>enemyTank.getY()&&s.y<enemyTank.getY()+60){
s.isLive=false;
enemyTank.isLive=false;
break;
}
case 1://左右一样
case 3:
if(s.x>enemyTank.getX()&&s.x<enemyTank.getX()+60
&&s.y>enemyTank.getY()&&s.y<enemyTank.getY()+40){
s.isLive=false;
enemyTank.isLive=false;
break;
}
}
}
//然后在前面画敌方坦克的时候加一个判断if(enemyTank==true) 才画 实现坦克消失
爆炸效果:
3.让敌人坦克随机方向移动
4.控制我方坦克和敌人坦克在规定范围移动
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。