用java实现小球撞墙

import javax.swing.JFrame;

import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.Color;
import javax.swing.JPanel;
import java.awt.Graphics;
public class MyBall extends JFrame{
  ballPanel bp;
  public MyBall(){
    bp=new ballPanel();
    Thread t=new Thread(bp);
    t.start();

    bp .addKeyListener(bp);
    this.addKeyListener(bp);
    this.add(bp);
    this.setSize(400,500);
    // this.setBackground(new Color(50,200,120));
    // this.setLocationRelativeTo(null);
    this.setLocation(300,100);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  public static void main(String[] args){
    MyBall my=new MyBall();
    my.setVisible(true);
  }

}
class ballPanel extends JPanel implements Runnable,KeyListener{
  private int x=50;
  private int y=50;
  int flag=0;
  public ballPanel(){
    this.setBackground(new Color(50,200,120));
  }
  public void paint(Graphics g){
    super.paint(g);
    g.fillOval(x, y,30,30);
  }
  public void keyPressed(KeyEvent e){
    if(e.getKeyCode()==37){
    x--;
  }
  if(e.getKeyCode()==38){
    y--;
  }
  if(e.getKeyCode()==39){
    x++;
  }
  if(e.getKeyCode()==40){
    y++;
  }
//   System.out.println(e.getKeyChar());
  this.repaint();
  }
  public void keyReleased(KeyEvent e){

  }
  public void keyTyped(KeyEvent e){

  }
  public void run(){
    while(true){
      if(flag==0){
      x++;
      y++;
      }
      if(flag==1){
        x--;
        y++;
      }
      if(flag==2){
        x--;
        y--;
      }
       if(flag==3){
        x++;
        y--;
      }
      if(x>340){
        if(flag==0){
          flag=1;
        }else{
          flag=2;
        }
      }
      if(y>430){
        if(flag==1){
          flag=2;
        }else{
          flag=3;
        }
      }
      if(x<0){
        if(flag==2){
          flag=3;
        }else{
          flag=0;
        }
      }
      if(y<0){
        if(flag==3){
          flag=0;
        }else{
          flag=1;
        }
      }
      try{
        Thread.sleep(5);
      }catch(Exception e){

      }
      this.repaint();
    }
  }
}

时间: 2024-07-31 14:29:04

用java实现小球撞墙的相关文章

JS关于小球撞墙问题

学习了JS,自己写了一个关于小球撞墙的小练习,呈现的的效果是点击框里的空白会出现小球去撞红色的墙,墙后面有一个血槽,小球撞一下,血槽的血就少一格,当血槽里的血都消失时,墙消失.下面是具体实现的代码. 一.首先是body里的内容:创建一个大的div块,里面包含两个元素,是两个div快当作墙和血槽 <body>      <div id="wrap">           <div id="wall"></div>   

练习.小球撞墙反弹

1 package com.java7.myball.main; 2 import java.awt.*; 3 4 public class MyBall { 5 public static void main(String[] args) { 6 Frame w = new Frame(); 7 w.setSize(300, 400); 8 9 MyPanel mp = new MyPanel(); 10 w.add(mp); 11 12 Thread t = new Thread(mp);

小tips:用java模拟小球做抛物线运动

这几天刚刚学习了java线程,然后跟着书做了几个关于线程的练习,其中有一个练习题是小球动起来.这个相信很简单,只要运用线程就轻松能够实现.然后看到了它的一个课后思考题,怎样让小球做个抛物线运动,这点我调试了很久,上网也找了很多资料,但是没有那种适合我们小白的教程,于是我简单讲讲我的思路.我将从如何画一个小球开始到一步步实现小球进行抛物线运动.嘿嘿!! 一.任务分解 现在我们来做抛物线运动的小球,先不急写代码,先来想象一下做好的结果是什么样子的.我将这个任务分成三步,第一步,画一个小球:第二步,该

java实现小球碰撞反弹

首先我们要在一个窗口里面显示这个功能,因此引入JFrame类然后创建一个窗口代码如下:JFrame win=new JFrame();//新建窗口 win.setLocation(250,100);//设置窗口位置 win.setSize(800,600);//设置窗口大小 win.show();//显示窗口win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭退出显示如下:要实现这个功能做基础的就是要有一个小球,就像人吃饭这句话,少了

酒驾太可怕 男子喝醉骑电动车撞墙身亡

相信大家对酒驾都不陌生,喝酒太误事并且现在酒驾的查处越来越严格,所以很多车主只要喝酒一般就不会开车.但现在电动车的管理还不严格,喝酒过后骑电动车再寻常不过.但最近在南京发生的一件奇葩事故让很多人看到,酒驾不仅针对开机动车的车主,骑电动车的也要注意酒驾的危害.开新在这里提醒广大车主开车骑车一定要注意人身安全,喝酒之后一定不能再去开车骑车了. 11月9号下午,南京一条街道上一男子酒后骑电动车回家时,不慎撞上路边民房,该男子当场身亡.该死者已经被急救人员抬上120救护车送往南京六合人民医院.医生告诉交

CCF签到汇总(JAVA版本,2013-12~2018-12)

CCF签到题,没有提到分数的题目都是100分,不然会额外提出,样例输入都单独文本复制粘贴了,这样你们测试的时候很方便粘贴用例,不用自己手敲,都是一些签到题.但有好的基础,会多的数据结构,好的数学思想,那么这些都是一些很简单的问题.因为java版本不多,所以仅供参考,以下代码的思路都很简单,很多都直接通过题目面向过程,有更好的想法,或者你我有些题没有满分的改进方式都可以交流. CCF300分的线,1.2题需要拿满,最低也要190,第三题是理解题,很多时候考你的语文能力更多,第四题是规律性更强的题,

java学习之坦克大战游戏

总结:由于这几天快过年比较忙然后没怎么写,写代码途中一些经验总结现在给忘记了.这次的小项目感觉比上次写的思路清楚了点.没有之前第一次写那么逻辑混乱,结构也搞的比之前的要好,添加功能比较容易.学习了之前的经验,操作对象的方法由对象本身提供.不过这次小项目还有不足和不完善之处,有些可以做的功能没有实现,比如游戏存档,这里应该可以用下对象的序列化,还有游戏难度的设置也可以写个文件弄出来.要过年了,到处走亲戚没什么心思写了,这里只能留个尾巴了. 前言:之前的及时通信项目完成后感觉线程方面和对java的运

android开发之网络棋牌类在线游戏开发心得(服务器端、Java) 好文章值得收藏

标签: android服务器 2013-10-09 17:28 3618人阅读 评论(0) 收藏 举报 分类: android(11) 转自:http://blog.csdn.net/bromon/article/details/253330 Bromon原创 请尊重版权 一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊.本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的,我打算只说说一些值得注意

java 简单贪吃蛇

说了是简单版贪吃蛇... 就3个类+方向枚举变量(本来想写贪吃蛇斜着走的..想象我的蛇是矩形 斜着难看就没写) 上下左右键控制移动 空格暂停 SnackClient类 package com.xynu.snaker; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListene