我正致力于创造一个有趣的游戏,基本上是一个简单的演化表示.
基本上,当我点击我移动的球时,它会改变颜色.目标是不断改变,直到它与背景颜色相匹配,这意味着球被成功隐藏.最终我会添加更多的球,但我试图弄清楚如何通过鼠标点击改变它的颜色.到目前为止,我已经创建了移动球动画.
当我点击球时如何改变球的颜色?
码:
public class EvolutionColor
{
public static void main( String args[] )
{
JFrame frame = new JFrame( "Bouncing Ball" );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
BallPanel bp = new BallPanel();
frame.add( bp );
frame.setSize( 1800, 1100 ); // set frame size
frame.setVisible( true ); // display frame
bp.setBackground(Color.YELLOW);
} // end main
}
class BallPanel extends JPanel implements ActionListener
{
private int delay = 10;
protected Timer timer;
private int x = 0; // x position
private int …Run Code Online (Sandbox Code Playgroud) 我必须每2秒重复一次我的代码,我怎么能这样做?不要告诉我使用
try {
Thread.sleep(millisecondi);
}
catch (Exception e) {}
因为冻结了应用程序
Date fakeDate = sdf.parse("15/07/2013 11:00 AM");
Calendar calendar = Calendar.getInstance()
calendar.setTime(fakeDate);
int currentMonth = calendar.get(Calendar.MONTH);
Run Code Online (Sandbox Code Playgroud)
我得到currentMonth == 6而不是7.
这是为什么?
我希望每秒增加1分,但我很难让它正常工作.
例如
(伪代码):
int score = 0f // on create
updateEverySecond() {
score += 1;
displayScore()
}
Run Code Online (Sandbox Code Playgroud)
我还想知道如何在屏幕顶部显示分数并居中.
我的完整源代码:
package com.ryanwarren.dodge.game;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
public class libgdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture player;
Vector2 position;
float time = 0f;
@Override
public void create () {
batch = new SpriteBatch();
player = new Texture(Gdx.files.internal("player.png"));
position = new Vector2((Gdx.graphics.getWidth()/2 - (player.getWidth()/2)),50);
}
@Override
public void dispose() {
}
@Override
public …Run Code Online (Sandbox Code Playgroud) 在html中我提到了一个id ="txt"的类
<p id="txt">1</p>
Run Code Online (Sandbox Code Playgroud)
我需要每500毫秒间隔加1.我使用了以下代码,但它没有用.
function timedText() {
var x = document.getElementById('txt');
setInterval(function () {x= "(parseInt(x, 10)+ 1).toString(10)";},500);
}
Run Code Online (Sandbox Code Playgroud)
单击按钮时会调用上述功能.
我试图得到它所以确认窗口每n秒弹出一次,用户输入提示,但无论输入如何,都会立即弹出确认窗口.我究竟做错了什么?
这是我的按钮的样子:
<button onclick="timer_prompt()">FUN</button>
Run Code Online (Sandbox Code Playgroud)
我的简单功能:
function timer_prompt()
{
var seconds = prompt("Enter Time Interval In Seconds Please");
seconds = seconds*1000;
if(seconds>0)
{
setInterval(confirm_timer(), seconds);
}
else
{
alert("You entered invalid content");
}
}
function confirm_timer()
{
confirm("YOU HAVE SET A TIMER!!!");
}
Run Code Online (Sandbox Code Playgroud) 我在javascript中创建了一个计时器应用程序.首先,它将当前的UTC日期带到init计时器并带有一些引用.这是代码
on_timer: function(e) {
var self = this;
if ($(e.target).hasClass("pt_timer_start")) {
var current_date = this.get_current_UTCDate();
this.project_timesheet_db.set_current_timer_activity({date: current_date});
this.start_interval();
this.initialize_timer();
this.$el.find(".pt_timer_start,.pt_timer_stop").toggleClass("o_hidden");
Run Code Online (Sandbox Code Playgroud)
现在,一旦定时器启动并且在一段时间跨度计时器之后有一些经过的时间参考上述on_timer: function(e)功能.
这个功能是
start_interval: function() {
var timer_activity = this.project_timesheet_db.get_current_timer_activity();
var self = this;
this.intervalTimer = setInterval(function(){
self.$el.find(".pt_duration").each(function() {
var el_hour = $(this).find("span.hours");
var el_minute = $(this).find("span.minutes");
var minute = parseInt(el_minute.text());
if(minute >= 60) {
el_hour.text(_.str.sprintf("%02d", parseInt(el_hour.text()) + 1));
minute = 0;
}
el_minute.text(_.str.sprintf("%02d", minute));
var el_second = $(this).find("span.seconds");
var seconds = parseInt(el_second.text()) + 1;
if(seconds > 60) …Run Code Online (Sandbox Code Playgroud) 使用有用的用户Stefan提供的代码我编辑了自己的代码来模拟他,但是我无法启动计时器.我已经尝试将实例移出私有void,这会导致其他错误,例如尝试重新定义timer变量.
private Timer timer;
private void StartStopTimerActionPerformed(java.awt.event.ActionEvent evt) {
timer = new Timer(5000,new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt) {
}
});
StartStopTimer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!timer.isRunning()) {
timer.start(); AddOneActionPerformed(evt);
} else {
timer.stop();
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
此代码对计时器没有影响.它没有开始计数
我一直在寻找其他一些线程和不同的方法来解决这个问题,并且我一直得到同样的错误.我遗漏了包裹并进口了.我正在使用Thread但是,我读过你不应该将它们用于GUI.
public class Game extends JPanel{
Player player = new Player(this);
public Game(){
addKeyListener(new KeyListener(){
@Override
public void keyTyped(KeyEvent e){
}
@Override
public void keyReleased(KeyEvent e){
player.keyReleased(e);
}
@Override
public void keyPressed(KeyEvent e){
player.keyPressed(e);
}
});
}
public void move(){
player.move();
}
@Override
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
player.paint(g2d);
}
public void timer1(){
int delay = 10; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("Running");
}
};
new …Run Code Online (Sandbox Code Playgroud) 在C#中,我想在进入页面时设置一个计时器,然后开始倒计时十秒钟.
如果用户未在十秒内完成操作,则触发计时器,提示"游戏结束".
如果用户在十秒内完成操作,则取消定时器设备.
我怎样才能做到这一点?