角色重力 java_java – 一个玩家掉落的系统(基本上是重力)

在现实世界中,重力将随着时间的推移(每秒9.8米每秒)增加一个恒定量的下降速率.您可以通过给予玩家垂直速度(当他们跳跃或从平台上掉下来)然后每次围绕主游戏循环从该值减去一个恒定量来模拟这一点,以便它们随着时间的推移而加速.你会希望对此(最终速度)设置一个最大限制,否则当它们长时间落下时它们可能会很快地达到可笑的速度.伪代码看起来像这样:

const GRAVITY = 10;

const TERMINAL_VELOCITY = 300;

object Player

{

int vertical_speed = 0;

int vertical_position;

function fall ()

{

this.vertical_speed = this.vertical_speed + GRAVITY;

if (this.vertical_speed > TERMINAL_VELOCITY)

{

this.vertical_speed = TERMINAL_VELOCITY;

}

this.vertical_position = this.vertical_position - this.vertical_speed;

}

}

编辑:每秒9.8米每秒是正确的!请不要编辑它!加速度测量为速度随时间的变化,以米/秒/秒表示.每秒9.8米每秒意味着静止物体在1秒后将加速到足以以9.8米/秒的速度行进. 2秒后,它将达到19.6米/秒的速度. 3秒后它将达到29.4米/秒的速度,依此类推.

老实说,我不相信我甚至不得不解释.

好的,以下是一个简单的重力计算界面示例,使用 Java 的 Swing 框架实现: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class GravityCalculator { private JFrame frame; private JPanel panel; private JLabel label_mass1, label_mass2, label_distance, label_result; private JTextField field_mass1, field_mass2, field_distance; private JButton button_calculate; public GravityCalculator() { createGUI(); bindEvents(); } private void createGUI() { frame = new JFrame("Gravity Calculator"); panel = new JPanel(new GridLayout(4, 2, 5, 5)); label_mass1 = new JLabel("Mass 1 (kg):"); panel.add(label_mass1); field_mass1 = new JTextField(); panel.add(field_mass1); label_mass2 = new JLabel("Mass 2 (kg):"); panel.add(label_mass2); field_mass2 = new JTextField(); panel.add(field_mass2); label_distance = new JLabel("Distance (m):"); panel.add(label_distance); field_distance = new JTextField(); panel.add(field_distance); button_calculate = new JButton("Calculate"); panel.add(button_calculate); label_result = new JLabel("Result:"); panel.add(label_result); frame.add(panel); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } private void bindEvents() { button_calculate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { double mass1 = Double.parseDouble(field_mass1.getText()); double mass2 = Double.parseDouble(field_mass2.getText()); double distance = Double.parseDouble(field_distance.getText()); double gravity = 6.674 * Math.pow(10, -11); double force = gravity * mass1 * mass2 / Math.pow(distance, 2); label_result.setText(String.format("Result: %.2e N", force)); } }); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new GravityCalculator(); } }); } } ``` 这个界面与上面的 Python 版本类似,使用了一个网格布局管理器来放置标签、文本框和按钮,并在点击 "Calculate" 按钮计算重力力量并将结果显示在标签中。需要注意的是,按钮的事件处理器中要进行输入值的转换和计算,以及格式化结果的显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值