资源简介
一个java3d网球游戏的源代码
一个java3d网球游戏的源代码

代码片段和文件信息
package Tennis;
import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.image.*;
import javax.media.j3d.*;
import javax.vecmath.*;
class Ball extends VirtualEntity
{
public double elapsed = 0;
public long lastCollisionTime = 0;
public Vector3d lastCollision = new Vector3d(0 0 0);
public Vector3d pos = new Vector3d(0 TennisGame.BALL_RADIUS 0);
public Vector3d dir = new Vector3d(0 0 0);
private Shadow bShadow;
public double speed = 0.0;
public boolean stopped = true;
Ball()
{ models = new Shape3D[1];
mtrans = new Transform3D[]{ new Transform3D() };
Appearance a = getStdAppearance(“textures/tball.gif“ Material.DIFFUSE false);
Material m = a.getMaterial();
m.setSpecularColor(0f 0f 0f);
a.setMaterial(m);
Sphere s = new Sphere(TennisGame.BALL_RADIUS PRIMFLAGS 10 a);
models[0] = s.getShape(Sphere.BODY);
bShadow = new Shadow(0.5f true);
}
public synchronized void changeDir(double x double y double z double s)
{ speed = s;
stopped = (speed == 0);
dir.set(x y z);
setLastCollision();
}
public synchronized void setForService()
{
// TennisGame.court.lastZ = 0;
changeDir(0 0 0 0);
pos.x = TennisGame.players[TennisGame.curServer].pModel.worldX + (0.25 * TennisGame.serveSide);
pos.z = TennisGame.players[TennisGame.curServer].pModel.worldZ;
pos.y = 1.5;
bShadow.update(pos);
}
private double tempRads = 0.0;
public synchronized void setShot(double x double z int sType double s)
{ dir.set(x - pos.x 0 z - pos.z);
if(sType == 0) // normal shot - set dir.y to + 1.0 instead of + 0.5 for different results
{ //dir.normalize();
//dir.y = ((TennisGame.NET_HEIGHT * 2 + 1.0) + ((Math.abs(pos.z) / dir.z) * (GAME_SPEED * TennisGame.GRAVITY))) / (TennisGame.COURT_LENGTH / 2.0);
//speed = (TennisGame.MAX_SPEED * 0.5) + Math.max(s * 0.5 1);
// dir.y = (TennisGame.NET_HEIGHT * 2 + 1.5);// / Math.min(Math.max(Math.abs(pos.z / (TennisGame.COURT_LENGTH)) 0.8) 1.0);
tempRads = Math.atan((TennisGame.NET_HEIGHT * 4.0) / Math.min(Math.max(Math.abs(pos.z) TennisGame.COURT_LENGTH * 0.65) TennisGame.COURT_LENGTH * 0.9)); //(TennisGame.COURT_LENGTH * 0.9)); // angle of shot is function of court length and net height
dir.y = (dir.length() / Math.cos(tempRads)) * Math.sin(tempRads); // straight shot = variable degrees
speed = 5.0 + 15.0 * Math.abs(pos.z / TennisGame.COURT_LENGTH) + s * 10.0;
}
else if(sType == 1)
{ dir.y = (dir.length() / Math.cos(Math.PI / 3.25)) * Math.sin(Math.PI / 3.25); // lob = 55 degrees
speed = 8.0 + s * 9.5; // min speed = 8.0 max = 17.5
}
else if (sType == 2)
{ dir.y = (dir.length() / Math.cos(Math.PI / 6.0)) * Math.sin(Math.PI / 6.0); // drop = 30 degrees
speed = 5.0 + s * 4.0; // max = 9.0
}
else if(sType == 3)
{ dir.y = 0;
dir.norma
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4533 2004-06-17 04:22 网球大赛\Ball.java
文件 2616 2004-06-17 04:22 网球大赛\Camera.java
文件 7366 2004-06-17 04:22 网球大赛\CommThread.java
文件 50 2004-06-17 04:35 网球大赛\compile.bat
文件 18009 2004-04-11 20:02 网球大赛\COPYING.txt
文件 18075 2004-06-17 04:22 网球大赛\Court.java
文件 4519 2004-06-08 04:01 网球大赛\hs_err_pid3960.log
文件 380761 2003-05-26 18:19 网球大赛\max.ms3d
文件 198 2004-06-17 04:22 网球大赛\Message.java
文件 9038 2004-06-17 04:22 网球大赛\Pla
文件 46 2004-06-17 04:36 网球大赛\run.bat
文件 5868 2004-06-17 04:22 网球大赛\ScoreBoard.java
文件 1144 2004-06-17 04:22 网球大赛\Shadow.java
文件 1622 2004-06-17 04:22 网球大赛\SplashScreen.java
文件 1464 2004-06-17 04:38 网球大赛\src_tennisgame.txt
文件 8697 2004-06-17 04:22 网球大赛\Tennisfr
文件 13804 2004-06-17 04:22 网球大赛\TennisGame.java
文件 52994 2008-09-24 11:06 网球大赛\TennisGame.jcd
文件 2009 2004-06-17 04:39 网球大赛\TennisGame.jcp
文件 3703 2004-06-17 04:39 网球大赛\TennisGame.jcu
文件 265 2004-06-17 04:39 网球大赛\TennisGame.jcw
文件 10839 2004-06-17 04:22 网球大赛\TennisLaunch.java
文件 2047 2004-06-17 04:22 网球大赛\VirtualEntity.java
文件 146414 2003-05-23 18:27 网球大赛\audio\aaah.wav
文件 467988 2004-06-06 15:13 网球大赛\audio\applause.wav
文件 33934 2003-03-06 18:02 网球大赛\audio\ballhit.wav
文件 5412 2003-04-14 10:26 网球大赛\audio\beep.wav
文件 138354 2002-02-20 00:45 网球大赛\audio\crowdcheer.wav
文件 1470062 2004-06-06 07:17 网球大赛\audio\exhort.wav
文件 59666 2003-05-23 16:51 网球大赛\audio\firstserve.wav
............此处省略143个文件信息
- 上一篇:jsp项目---博客网.rar
- 下一篇:宠物商店 使用JSP 技术web应用
相关资源
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
评论
共有 条评论