java 小球抛物线_关于【愤怒的小鸟】其中的算法(自由落体,抛物线,碰撞,反弹)...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package gui;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.ArrayList;
/**
* 小鸟类
* @author class
*
*/
public class Bird {
double x;
double y;
int w;
int h;
double vx;// 水平速度
double vy;// 垂直速度
double time;// 计时器
double timey;// y轴计时器
double oldx;// 小鸟的出发点坐标(松开鼠标的一刹那)
double oldy;// 小鸟的出发点坐标(松开鼠标的一刹那)
double oldvy;// 小鸟的触地反弹前的瞬间垂直速度
int n = 0; // 记录添加尾迹的次数
boolean moved; // 小鸟是否在运动
ArrayList tails = new ArrayList(); //这是小鸟的尾迹, (Ball 的**)
public Bird (){
}
public Bird(int x, int y ,int size){
this.w = size;
this.h = size;
init(x,y);
}
/**
* 初始化方法
* @param x
* @param y
*/
public void init(int x, int y){
this.x = x;
this.y = y;
moved = false;
time = 0;
timey= 0;
}
/**
* 设置水平和垂直初速度
* @param mx 小鸟距离弹弓中心的x轴距离
* @param my 小鸟距离弹弓中心的y轴距离
*/
public void setVxy(int mx, int my){
vx = mx;
vy = my;
}
/**
* 画自己
*/
public void draw(Graphics g){
// 画飞行的轨迹
for(Ball ball : this.tails){ // foreach (元素类型 局部变量 : **对象)
ball.draw(g); // 画一个小球
}
g.drawImage(GH.imgBird, (int)x,(int)y, 30, 30, null);// 画小鸟
// 绘制边界矩形
g.setColor(Color.white);
g.drawRect(this.getBound().x, this.getBound().y, this.getBound().width, this.getBound().height);
}
public void setOldXY(){
oldx = x;
oldy = y;
this.tails.clear();// 清空尾迹
}
/**
* 更新
*/
public void update(){
if (moved) {
time++;
timey++;
double tempx = getDistance(vx, time / 10.0);
double tempy = getDistanceDown(vy, timey / 10.0, 9.8);
this.oldvy = (oldy + tempy - y)*175 / 20.0;// 求出即时速度
x = oldx + tempx;
y = oldy + tempy;
if(this.x >1024 || this.y > 768){
this.init(215, 420);
}
if(time % 5 == 0){
addTails();// 添加小球 -- 飞行的轨迹
}
}
}
/**
* 计算水平位移
* @param v 水平初速度
java 小球抛物线_关于【愤怒的小鸟】其中的算法(自由落体,抛物线,碰撞,反弹)...相关推荐
- 小球自由落体及碰撞反弹
目录 简述 构成 小球 按钮 运动轨迹 总结 简述 通过setInterval()定时刷新小球位置来完成小球运动状态,模拟自由落体加速度及碰撞反弹效果 构成 整体的物体很少,只有一个小球及一个开始按钮 ...
- python画抛物线_如何使用python的matplotlib模块画抛物线
1 第一步,点击键盘 win+r,打开运行窗口:在窗口中输入"cmd",点击确定,打开windows命令行窗口. 2 第二步,在cmd命令行窗口中输入"python&qu ...
- java 笛卡尔积 数组_在JS中笛卡尔积算法与多重数组笛卡尔积(详细教程)
这篇文章主要介绍了JS笛卡尔积算法与多重数组笛卡尔积实现方法,结合实例形式分析了javascript根据对象或数组生成笛卡尔积的相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS笛卡尔积算法与多重 ...
- java单词匹配算法_前端学数据结构与算法(八): 单词前缀匹配神器-Trie树的实现及其应用...
前言 继二叉树.堆之后,接下来介绍另外一种树型的数据结构-Trie树,也可以叫它前缀树.字典树.例如我们再搜索引擎里输入几个关键字之后,后续的内容会自动续上.此时我们输入的关键词也就是前缀,而后面的就 ...
- html画布实现小球沿直线下落,js+html5实现的自由落体运动效果代码
本文实例讲述了js+html5实现的自由落体运动效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: /p> "http://www.w3.org/TR/xhtm ...
- java模拟抛物线_小tips:用java模拟小球做抛物线运动
这几天刚刚学习了java线程,然后跟着书做了几个关于线程的练习,其中有一个练习题是小球动起来.这个相信很简单,只要运用线程就轻松能够实现.然后看到了它的一个课后思考题,怎样让小球做个抛物线运动,这点我 ...
- java小球模拟平抛运动_实操项目跳跃的小球
这是两个简单的小项目,产生两个在重力的作用下产生运动的自由落体的小球,模拟简单的自由落体和平抛运动,可以用在教学演示中 建立小球 import java.awt.Color; public class ...
- JVM - 结合代码示例彻底搞懂Java内存区域_对象在堆-栈-方法区(元空间)之间的关系
文章目录 Pre 示例demo 总体关系 代码示例论证 反汇编 Pre JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器 中我们探讨了线程栈中的内部结构 ,大家 ...
- java 3d游戏_不放一行代码分享一下java实现3D游戏逻辑
这篇日记是对最近几周Java大作业写的一个3D打怪挖矿游戏进行记录和总结.另一个目的也是因为我发现身边很多朋友对3D游戏逻辑很有兴趣.所以写这篇日记可以介绍一下一个3D游戏是如何实现基础功能的.即使没 ...
- Java计算时间差_传统的SimpleDateFormat类
Java计算时间差_传统的SimpleDateFormat类 SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd ...
最新文章
- 我花了三个小时写了一道题的六千字题解....(POJ 2888 Magic Bracelet)
- Win2003用NAT实现ADSL共享与×××服务器
- 进阶学习(3.7) Flyweight Pattern 享元模式
- html绘制头像原样教程,CSS实例教程:创意CSS3头像展示教程
- 真香!2020最新版《神经网络与深度学习》中文版更新完毕,PDF免费开放下载~...
- OpenShift 4 - DevSecOps Workshop (10) - 向Stage环境部署应用镜像
- [刘阳Java]_CSS数字分页效果
- mysqlin索引失效的情况
- WebGIS设计思想
- Eclipse中Errors occurred during the build最简单的解决方法
- Hibernate使用的一些细节注意事项
- Linux命令使用练习一
- 15. POSIX 线程
- python 批量gif转tif_使用Python 批量转移*.tif和*.mov文件
- 一份数据工程师必备的学习资源,干货满满(附链接)
- 使用fastadmin的页面跳转模板
- Premiere 初识PR
- 以智能卡平台为硬件的嵌入式加密IC的优势
- 镜像翻转_【资讯】装动镜世界版假面骑士时王登场,镜像翻转也算新规?
- linux word 转 pdf 上类似百度文库开发研究与实战
热门文章
- RabbitMq(十三)消息发送确认与回调机制
- golang 三种接口的定义方式
- mysql 命令 select_Mysql基础命令(二)select查询操作
- Dubbo源码分析系列之-整体架构设计
- openvswitch patch port使用方法
- 细说Golang的JSON解析
- Laravel核心解读--Database(一)基础介绍
- 再聊Spring Bean的生命周期
- 实战Spring Boot 2.0系列(一) - 使用Gradle构建Docker镜像
- 解读新突破“中国量子计算机”,真比神威·太湖之光还厉害?