`
小数点
  • 浏览: 5878 次
  • 性别: Icon_minigender_2
  • 来自: 汉中
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
  • Mybeautiful: 恩,不错.理解很深刻. 不过个人建议,不要滥用单例模式.一个单 ...
    单例模式

弹力球

阅读更多
[size=xx-small]最近写了一个弹力球的游戏,点击开始小球开始动,但要用鼠标点击面板一下,接球的木板才会动,不知道那里写的不妥当

import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.Timer;

public class PinBall {

Frame ff = new Frame("弹力球");
Panel pp = new Panel();
Button b1 = new Button("开始");
Button b2 = new Button("暂停");
MyCanvas mc = new MyCanvas();
MyListener1 ml1 = new MyListener1();
MyListener2 ml2 = new MyListener2();
MyListener3 ml3 = new MyListener3();
Timer timer;

public static int CANVANSWIDTH = 300;
public static int CANVANAHEIGHT = 400;
public static int BALLSIZE = 15;
public static int BALLX = new Random().nextInt(CANVANSWIDTH - BALLSIZE);
public static int BALLY = new Random().nextInt(50);
public static double RATE = new Random().nextDouble() - 0.5;
public static int SPEEDY = 10;
public static int SPEEDX = (int)(RATE * SPEEDY);
public static int BOARDWIDTH = 40;
public static int BOARDHEIGHT = 10;
public static int BOARDX = new Random().nextInt(CANVANSWIDTH - BOARDWIDTH);
public static int BOARDY = 380;
public static boolean islose;


public void init() {

mc.setPreferredSize(new Dimension(CANVANSWIDTH,CANVANAHEIGHT));


timer = new Timer(100,ml1);

pp.setBackground(Color.blue);

pp.add(b1);

pp.add(b2);

ff.add(pp,BorderLayout.NORTH);

ff.add(mc);

ff.addWindowListener(ml3);

ff.setVisible(true);

b1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

timer.start();

mc.addKeyListener(ml2);

ff.addKeyListener(ml2);
}
});

b2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

timer.stop();
}
});
ff.pack();


}

public class MyCanvas extends Canvas {

public void paint(Graphics g) {

if(!islose) {



g.setColor(Color.red);

g.fillOval(BALLX, BALLY, BALLSIZE, BALLSIZE);

g.setColor(Color.green);

g.fillRect(BOARDX, BOARDY, BOARDWIDTH, BOARDHEIGHT);
}
else {

g.setColor(Color.yellow);
g.drawString("游戏结束55555", 100, 80);
g.setFont(new Font("Monospaced",Font.BOLD,200));
}

}
}

public class MyListener1 implements ActionListener {

public void actionPerformed(ActionEvent e) {

if(BALLY > BOARDY - BALLSIZE &&(BALLX < BOARDX || BALLX > BOARDX + BOARDWIDTH)) {
islose = true;
timer.stop();

mc.repaint();
}

if(BALLX <= 0 || BALLX >= CANVANSWIDTH - BALLSIZE) {

SPEEDX = -SPEEDX;
}

if(BALLY <= 0 ||(BALLY >= BOARDY - BALLSIZE && BALLX >= BOARDX && BALLX <= BOARDX + BOARDWIDTH)) {

SPEEDY = -SPEEDY;
}
BALLX += SPEEDX;
BALLY += SPEEDY;
mc.repaint();

}
}

public class MyListener2 extends KeyAdapter {

public void keyPressed(KeyEvent e) {

if(e.getKeyCode() == KeyEvent.VK_LEFT && BOARDX >0) {

BOARDX -= 10;
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT && BOARDX + BOARDWIDTH < CANVANSWIDTH) {

BOARDX += 10;
}
}
}

public class MyListener3 implements WindowListener {

public void windowActivated(WindowEvent e) {

}
     public void windowClosed(WindowEvent e) {
    
     }
public void windowClosing(WindowEvent e) {

System.exit(0);
}
public void windowDeactivated(WindowEvent e) {

}
public void windowDeiconified(WindowEvent e) {

}
public void windowIconified(WindowEvent e) {

}
public void windowOpened(WindowEvent e) {

}

}
public static void main(String[] args) {

new PinBall().init();
}
}
[/size]
0
0
分享到:
评论

相关推荐

    Unity 弹力球形变demo

    在Unity引擎中,"弹力球形变demo"是一个展示了物体动态变形效果的示例项目。这个项目利用了Unity3D的物理系统和图形技术,为游戏或互动体验中的对象添加了逼真的弹性效果。下面将详细介绍这个Demo所涉及的关键知识点...

    C语言实战游戏 弹力球

    《C语言实战游戏:弹力球》是一款基于C语言编程技术开发的小型游戏,它能够帮助初学者在实践中提升C语言编程技能。本游戏的核心是模拟一个弹力球的运动轨迹,通过用户输入来控制球的发射角度和速度,使得球在屏幕内...

    c语言课程设计-弹力球游戏

    【标题】"C语言课程设计-弹力球游戏"揭示了这个项目的核心是使用C语言编写一个弹力球游戏。C语言是一种基础且强大的编程语言,适用于开发各种类型的软件,包括游戏。在这个课程设计中,学生需要掌握C语言的基本语法...

    css3弹力球动画animation属性制作3D弹力球弹跳动画效果

    在CSS3中,`animation`属性是一个强大的工具,它允许我们创建复杂的动态效果,比如我们的主题——3D弹力球的弹跳动画。这个动画效果不仅增强了用户界面的视觉吸引力,还能提供更好的交互体验。接下来,我们将深入...

    BREW游戏开发小例子-弹力球

    在本文中,我们将深入探讨如何使用BREW(Binary Runtime Environment for Wireless)平台开发一款简单的“弹力球”游戏。BREW是由高通公司为无线设备创建的一个强大的应用程序开发环境,它支持C++语言,便于开发者...

    flash 弹力小球游戏

    "Flash 弹力小球游戏"是一款基于Flash平台开发的小游戏,展示了如何利用编程技巧实现物体的物理运动,特别是小球的碰撞检测与反馈,这是游戏设计中的重要组成部分。 在Flash中,游戏开发通常涉及到ActionScript编程...

    弹力球,c语言

    弹力球,c语言。弹力球,c语言弹力球,c语言弹力球,c语言

    用Qt5做的弹力球小游戏

    **Qt5弹力球小游戏详解** Qt5是一个跨平台的应用程序开发框架,广泛用于创建桌面、移动和嵌入式设备的用户界面。本项目利用Qt5制作了一个弹力球小游戏,名为BlockBreaker,旨在展示Qt5在游戏开发中的应用。 ### ...

    Unity3D弹力小球

    本项目"Unity3D弹力小球"是一个非常适合初学者的入门教程,它涵盖了基本的物理模拟、碰撞检测以及动画原理。 在Unity3D中实现弹力小球的效果,主要涉及到以下几个关键知识点: 1. **物理引擎**:Unity内置了强大的...

    c语言实现类似弹力球效果.rar

    在本项目中,我们主要探讨的是如何使用C语言来实现一个类似于弹力球的效果。C语言是一种基础且强大的编程语言,常用于系统编程、游戏开发、嵌入式系统等,其简洁的语法和高效的执行效率使得它非常适合创建这种实时...

    c语言实现类似弹力球效果.zip

    标题 "c语言实现类似弹力球效果.zip" 暗示了这个压缩包包含的项目是用C语言编写的,其目标是模拟一个具有物理弹力特性的球体运动。在计算机图形学和游戏开发中,这样的效果通常涉及到物体碰撞检测、物理引擎以及动画...

    Android 弹力小球实例

    在Android开发中,创建引人入胜的交互式UI元素是一项重要的任务,"Android 弹力小球实例"就是这样一个示例,它结合了物理模拟和动画效果,为用户提供了一个有趣的体验。在这个实例中,我们将深入探讨如何实现小球的...

    flash简单的基础小游戏——弹力小球

    在本文中,我们将深入探讨如何使用Adobe Flash创建一个基础的小游戏——弹力小球。Flash是一款曾经非常流行的动画和交互式内容开发工具,特别适用于创建网页小游戏。对于初学者来说,学习如何用Flash制作游戏是了解...

    弹力球代码

    网页中弹力球的效果,脚本语言 &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; ; charset=utf-8" /&gt; 无标题文档 &lt;/head&gt;

    javascript面向对象做弹力球

    用Javascript面向对象做弹力球,改变参数生成大小、步长、时间间隔、颜色不同的div盒子(弹力球)

    基于C语言实现类似弹力球效果完整源码

    基于C语言实现类似弹力球效果完整源码 基于C语言实现类似弹力球效果完整源码 基于C语言实现类似弹力球效果完整源码 基于C语言实现类似弹力球效果完整源码 基于C语言实现类似弹力球效果完整源码 基于C语言实现类似...

    弹力小球游戏

    flash弹力小球,有源代码,代码里有详细的解释。希望对各位有所帮助。

    小程序弹力球源码

    【小程序弹力球源码】是一个适合初学者学习的小程序项目,主要涵盖了微信小程序开发的基础知识和游戏编程的一些基本概念。在这个项目中,开发者可以学习到如何利用微信小程序的开发框架构建一个简单的弹力球游戏。...

    Laya 3D弹力球 Laya工程 引擎版本2.12

    《Laya 3D弹力球:探索Laya引擎2.12的创新与实践》 在当前数字化时代,3D游戏开发已经成为一种主流趋势,而Laya引擎作为一款高效、易用的跨平台3D游戏开发工具,备受开发者们的青睐。本工程“Laya 3D弹力球”就是...

    不错的毕业设计、课程设计、练手c语言项目:弹力球效果.rar

    不错的毕业设计、课程设计、练手c语言项目:弹力球效果.rar 不错的毕业设计、课程设计、练手c语言项目:弹力球效果.rar 不错的毕业设计、课程设计、练手c语言项目:弹力球效果.rar 不错的毕业设计、课程设计、练手...

Global site tag (gtag.js) - Google Analytics