Java桌球小游戏1
版本三、使小球动起来
package cn.xjion.game;
/**
* 水平滚动
* @author xjion
*
*/
import java.awt.*;
import javax.swing.*;
//继承窗口类
public class BallGame extends JFrame{
// 创建两个图片的对象,代表两个图片
Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
int x = 100;
int y = 100;
boolean right = true;
// 画窗口的方法
public void paint(Graphics g){
// 画桌面
g.drawImage(desk, 0, 0, null);
// 画ball对象,坐标100,100
g.drawImage(ball, x, y, null);
// 如果向右走就加10,否则减10
if (right) {
x = x + 10;
}else{
x = x - 10;
}
// 当球跑到头了就返回
if(x>856-40-30){
right = false;
}
if(x<40){
right = true;
}
}
// 窗口加载的方法
void launchFrame(){
// 窗口的大小,宽高
setSize(856,500);
// 窗口的位置,距离窗口左上角的位置
setLocation(50,50);
// 窗口可见
setVisible(true);
// 重画窗口,无限重画
while(true){
// 重画方法
repaint();
// try catch抛异常
try {
// 40ms重画一次,1秒25次
Thread.sleep(40);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// main方法,执行入口
public static void main(String[] args) {
// 新建对象
BallGame bg = new BallGame();
// 调用方法
bg.launchFrame();
}
}
版本四、使小球沿任意角度滚动
package cn.xjion.game;
/**
* 任意滚动
* @author xjion
*
*/
import java.awt.*;
import javax.swing.*;
//继承窗口类
public class BallGame2 extends JFrame{
// 创建两个图片的对象,代表两个图片
Image ball = Toolkit.getDefaultToolkit().getImage("image/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
// 在窗口上的坐标
double x = 100;
double y = 100;
double degree = 3.14 / 3;//弧度,60°
// 画窗口的方法
public void paint(Graphics g){
// 画桌面
g.drawImage(desk, 0, 0, null);
// 画ball对象,坐标100,100
g.drawImage(ball,(int) x,(int) y, null);
// x和y坐标的变化
x = x + 10*Math.cos(degree);
y = y + 10*Math.sin(degree);
/*判断什么时候碰到边界回弹*/
// 碰到上下边界回弹
if (y>500-40-30 || y<40 + 40) {
degree = -degree;
}
// 碰到左右边界回弹
if (x>856-40-30 || x<30) {
degree = 3.14-degree;
}
}
// 窗口加载的方法
void launchFrame(){
// 窗口的大小,宽高
setSize(856,500);
// 窗口的位置,距离窗口左上角的位置
setLocation(50,50);
// 窗口可见
setVisible(true);
// 重画窗口,无限重画
while(true){
// 重画方法
repaint();
// try catch抛异常
try {
// 40ms重画一次,1秒25次
Thread.sleep(40);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// main方法,执行入口
public static void main(String[] args) {
// 新建对象
BallGame2 bg = new BallGame2();
// 调用方法
bg.launchFrame();
}
}
---------------------
Java桌球小游戏1的更多相关文章
- Java桌球小游戏(兴趣制作)
两张图片放在src的同级目录下 版本一.出现窗口package cn.xjion.game;/** * 出现窗口 * @author xjion * */import java.awt.*;impor ...
- Java桌球小游戏
版本一.出现窗口package cn.xjion.game;/** * 出现窗口 * @author xjion * */import java.awt.*;import javax.swing.*; ...
- Java太阳系小游戏分析和源代码
Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...
- Java五子棋小游戏(控制台纯Ai算法)
Java五子棋小游戏(控制台纯Ai算法) 继续之前的那个五子棋程序 修复了一些已知的小Bug 这里是之前的五子棋程序 原文链接 修复了一些算法缺陷 本次增加了AI算法 可以人机对战 也可以Ai对Ai看 ...
- Java猜拳小游戏(剪刀、石头、布)
1.第一种实现方法,调用Random数据包,直接根据“1.2.3”输出“剪刀.石头.布”.主要用了9条输出判断语句. import java.util.Random; import java.util ...
- 从零开始学java(小游戏 石头剪刀布)
Game.java package com.java;import java.util.Scanner;public class Game { private Player player ...
- Java石头剪刀布小游戏
package com.neusoft.test; import java.awt.BorderLayout; import java.awt.Choice; import java.awt.Colo ...
- Java开发小游戏 用键盘控制精灵在游戏中上下左右跑动 窗体小游戏可打包下载,解压后双击start运行
package com.swift; import java.awt.Point; import java.awt.event.KeyEvent; import com.rupeng.game.Gam ...
- Java经典小游戏——贪吃蛇简单实现(附源码)
一.使用知识 Jframe GUI 双向链表 线程 二.使用工具 IntelliJ IDEA jdk 1.8 三.开发过程 3.1素材准备 首先在开发之前应该准备一些素材,已备用,我主要找了一个图片以 ...
随机推荐
- hdu 5279 YJC plays Minecraft——生成函数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5279 令 n 个点的树的 EGF 是 g(x) ,则 \( g(x) = \sum\limits_{i=0 ...
- 极简Vue的异步组件函数
export default new Router({ routes: [ { path: '/live', name: 'live', component: () => import('@/v ...
- (转)Android Studio启动AVD遇到的问题 ( HAXM安装失败)
转:https://zhidao.baidu.com/question/561420516357269084.html?qq-pf-to=pcqq.c2c Android Studio启动虚拟机的时候 ...
- python re.findall(rule,data),根据左右边界取值url中参数的值
import re ''' 取值postid,左边界"postid=",右边界"&" ''' url="http://wwww.baidu.c ...
- Nginx功能模块汇总
主要文档 Nginx功能概述.为什么选择Nginx.Nginx安装.常见问题(FAQ).配置符号参考.调试 nginx.优化 Nginx.运行和控制Nginx 核心模块 Nginx事件模块.Nginx ...
- 通过HttpServletResponseWrapper修改response输出流
在项目中遇到一个问题,需要对接口返回的数据进行加密给前端.项目中的controller一般都是返回一个实体form,重写的一个视图解析器继承ModelAndViewResolver,对返回的form转 ...
- Spring事物的传播
spring的事物对于同一个类内部调用是不会生效的. 比如一个ServiceA,里面有个方法x()和y().其中x没有配置事物,而y配置的有实物.如果是一个没有事物的ServiceB调用了Servic ...
- Java封装JDBC数据库增、删、改、查操作成JAR文件,以供Web工程调用,适用于多种数据库
废话不多说,直接上源代码,最后有使用方法,当然,也可以作为普通公用类使用,只是封装成JAR更方便使用. package db.util; import java.io.BufferedReader; ...
- python作业/练习/实战:2、注册、登录(文件读写操作)
作业要求 1.实现注册功能输入:username.passowrd,cpassowrd最多可以输错3次3个都不能为空用户名长度最少6位, 最长20位,用户名不能重复密码长度最少8位,最长15位两次输入 ...
- camunda任务的一些简单操作
public class ZccTaskService { TaskService taskService; @Before public void init(){ ProcessEngineConf ...