vs窗体移动小球-vs固定窗体大小

tamoadmin

1.帮忙看看这个ja程序好么,有点小细节不是很懂,其中不懂的一个地方我标记好了,麻烦大家了~~

2.求ja题源代码,最好有注释,

3.python可以做哪些小游戏?

4.VB代码注释 哪位高人帮帮我吧

帮忙看看这个ja程序好么,有点小细节不是很懂,其中不懂的一个地方我标记好了,麻烦大家了~~

vs窗体移动小球-vs固定窗体大小

你好,我帮你把程序测试了一下,得出的结论是:

你运行程序中得到的窗体的边界不是小球的碰撞边界,而是比碰撞边界小,去掉25后,小球明显有跃出边框的视觉效果。所以x>(table.getSize().width)-25和y>(table.getSize().width)-25都有这个设置,就是为了模拟的更真实一些,当然你也可以修改这些值去对比不同的效果。

求ja题源代码,最好有注释,

import ja.awt.*;

import ja.awt.event.*;

import ja.awt.geom.*;

import ja.util.*;

import jax.swing.*;

/**

* 多线程,小球演示. 打开Windows任务管理器,可看到线程变化。 可搜索到,run()方法/.start()

*

* du: 程序技巧体会: 所谓产生一个小球,即是 new 其类对象,其属性携带画小球的 坐标、颜色、所在容器 等参数。

*

* 一个类,属性用来作为参数容器用, 方法....完成功能。

* */

// 运行类

public class BouncePress {

//

public static void main(String[] args) {

JFrame frame = new BouncePressFrame(); // 生成窗口。执行构造。-----业务逻辑。

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to

// window

// listener

frame.show();

}

}

class BouncePressFrame extends JFrame {

private BallPressCanvas canvas;

public BouncePressFrame() {

setSize(600, 500); // 窗口大小

setTitle("Bounce Ball");

Container contentPane = getContentPane(); // Swing的窗口不能直接放入东西,只能在其上的ContentPane上放。

canvas = new BallPressCanvas(); // 生成一个新面板。-----canvas

contentPane.add(canvas, BorderLayout.CENTER); // 窗口中心 加入该面板。

JPanel buttonPanel = new JPanel(); // 再生成一个新面板。----buttonPanel

// 调用本类方法addButton。

addButton(buttonPanel, "Start", // 生成一个按钮"Start"---加入面板buttonPanel

new ActionListener() { // |------>按钮绑上 action。

public void actionPerformed(ActionEvent evt) { // | 小球容器对象的

addBall(Thread.NORM_PRIORITY - 4, Color.black); // 处理时,执行---addBall()方法。--->产生小球(参数对象)--->加入List中--->开始画球。

}

}); // 按一次,addBall()一次--->产生一个新小球--->加入List中--->开始画此新小球。

// --->画球线程BallPressThread的run()--->小球(参数对象).move()--->每次画时,先移动,再判断,再画。

// --->BallPressCanvas类的canvas对象.paint()--->自动调BallPressCanvas类的paintComponent(Graphics

// g)方法。

// --->该方法,从List中循环取出所有小球,第i个球,--->调该小球BallPress类

// .draw()方法--->调Graphics2D方法画出小球。--使用color/

addButton(buttonPanel, "Express", new ActionListener() {

public void actionPerformed(ActionEvent evt) {

addBall(Thread.NORM_PRIORITY + 2, Color.red);

}

});

addButton(buttonPanel, "Close", new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.exit(0);

}

});

contentPane.add(buttonPanel, BorderLayout.SOUTH);

}

public void addButton(Container c, String title, ActionListener listener) {

JButton button = new JButton(title); // 生成一个按钮。

c.add(button); // 加入容器中。

button.addActionListener(listener); // 按钮绑上 action。

}

/** 主要业务方法。 */

public void addBall(int priority, Color color) {

// 生成 小球(参数对象)

BallPress b = new BallPress(canvas, color); // 生成BallPress对象,携带、初始化

// 画Ball形小球,所需参数:所在容器组件,所需color--black/red.

// 小球加入 List中。

canvas.add(b); // 面板canvas 的ArrayList中 加入BallPress对象。

BallPressThread thread = new BallPressThread(b); // 生成画小球的线程类BallPressThread对象。传入BallPress对象(携带了画球所需

// 容器、color参数)。

thread.setPriority(priority);

thread.start(); // call run(), ball start to move

// 画球线程开始。--->BallPressThread的run()--->小球(参数对象).move()--->先移动,再画。canvas.paint--->BallPressCanvas类的

}

}

// 画球的线程类。

class BallPressThread extends Thread {

private BallPress b;

public BallPressThread(BallPress aBall) {

b = aBall;

}

// 画球开始。

public void run() {

try {

for (int i = 1; i <= 1000; i++) { // 画1000次。

b.move(); // 每次画时,先移动,再判断,再画。

sleep(5); // 所以移动比Bounce.ja的球慢。

}

} catch (InterruptedException e) {

}

}

}

// swing面板类.

// 作用1) 本类面板对象.paint()方法---->自动绘制面板,且自动调paintComponent(Graphics

// g)方法,--->重写该方法,绘制面板(及其上组件)。

// 作用2) 该类对象 属性ArrayList balls---兼作小球(参数对象)的容器。

class BallPressCanvas extends JPanel {

private ArrayList balls = new ArrayList();

public void add(BallPress b) {

balls.add(b); // 向ArrayList中添加球。当按下按钮,添加多个球时,都保存在这个List中。

}

// 重写了 jax.swing.JComponent的 paintComponent()方法。

// paint()方法自动调用该方法。

public void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2 = (Graphics2D) g;

for (int i = 0; i < balls.size(); i++) { // 循环

BallPress b = (BallPress) balls.get(i); // 从List中取出第i个球,

b.draw(g2); // 画此球。

}

}

}

/**

* 画出球。

*

* 在 canvas上画出,color色的小球图形。

*

* 属性,可用于携带画小球所需参数。

*

*

*

* @author ducongan

*

*/

class BallPress {

private Component canvas;

private Color color;

private int x = 0;

private int y = 0;

private int dx = 2;

private int dy = 2;

// 构造 初始化 容器 颜色 参数。

public BallPress(Component c, Color aColor) {

canvas = c;

color = aColor;

}

// 制定位置,画出小球。

public void draw(Graphics2D g2) {

g2.setColor(color);

g2.fill(new Ellipse2D.Double(x, y, 15, 15)); // ellipse:椭圆形

}

// 移动小球。

// 每次画时,先移动,再判断,再画。

// 该方法每次执行,画小球的起点坐标 (x,y), 每次各自+2, 即斜向右下运动。

public void move() {

x += dx; // x=x+dx; 画小球的起点坐标 (x,y), 每次各自+2, 即斜向右下运动。

y += dy; // y=y+dy;

if (x < 0) { // 小球已到左边框。保证,从左边框开始画。

x = 0;

dx = -dx; // 小球横坐标变化值取反。开始反向运动。

}

if (x + 15 >= canvas.getWidth()) { // 小球右边已经到画板右边。

x = canvas.getWidth() - 15;

dx = -dx; // 开始反向运动。

}

if (y < 0) { // 保证,从顶框开始画。

y = 0;

dy = -dy;

}

if (y + 15 >= canvas.getHeight()) { // 小球已到画板顶。

y = canvas.getHeight() - 15;

dy = -dy;

}

canvas.paint(canvas.getGraphics()); // 画出面板对象canvas----(及其上所有组件)

// //.paint()方法,自动调用

}

}

/*import ja.awt.*;

import ja.awt.event.*;

import ja.awt.geom.*;

import ja.util.*;

import jax.swing.*;

*//**

* 单线程,小球演示 搜索不到,run()方法/.start()

*//*

public class Bounce {

public static void main(String[] args) {

JFrame frame = new BounceFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to

// window

// listener

frame.show();

}

}

不懂的再问啊。。。

python可以做哪些小游戏?

python小游戏2048,上班摸鱼必备(附源码)

1、Python程序开发之简单小程序实例(11)小游戏-跳动的小球项目功能用户控制挡板来阻挡跳动的小球。

2、显然,其均需具备更新角色位置和改变角色运动方向的能力,其源代码如下:Step2:设计游戏地图利用Step1中定义的游戏精灵类,我们就可以开始设计游戏地图了。

15个Python入门小程序,你都知道哪些

用程序实现石头剪刀布游戏。字典的key是姓名,value是身高,现在需要按照身高对字典重新排序。将二元二次函数封装在函数中,方便调用初学python的小伙伴注意哦~不要只依赖于教程,而忽视实操的能力。不然,是很难有进步的。

你好,python不适合做小程序的。微信官方为小程序提供了大量的接口api,开发小程序需要有基本的Jascript,HTML,CSS的基础。

python必背内容:变量。指在程序执行过程中,可变的量。定义一个变量,就会伴随有3个特征,分别是内存ID,数据类型和变量值。常量,指在程序执行过程中,不可变的量。一般都用大写字母定义常量。与程序交互。

浅浅的笑着:“我会带着你的孩子,顚节进入Python程序开发之简单小程序实例(11)小游戏-跳动的小球项目功能用户控制挡板来阻挡跳动的小球。

首先要明确一点,python是后台语言,不能直接用python来写微信小程序的。微信小程序是用jascript和css来写的。python只是用来给小程序提供后台数据用的。同样可以为小程序提供后台数据的有ja和php。

Python实现消消乐小游戏

1、pre{overflow-x:auto}实现消消乐的构成主要包括三部分:游戏主体、计分器、计时器,下面来看一下具体实现。先来看一下游戏所需Python库。

2、鼠标点击切换位置。根据查询python消消乐相关资料得知,python消消乐控制横竖用鼠标点击切换位置。找出与旁边的两个图案匹配的另一个,鼠标点击切换位置,使得一行或一列至少3个相同即可消去。

3、为每一类的方块做一个对象(比如红色是一个类;蓝色是一个类……)写一个方法中,将所有方块放在一个数组中,再两个for循环遍历横纵坐标(整个游戏界面大小),将二维数组的值赋给随机一个方块类对象。

怎样用Python做一个2048?

通过上下左右的不断移动叠加直到score累加到2018为止,游戏失败的条件是直至空格全部填满score2048,胜利的条件是score=2048。

可利用while循环实现,每次循环i加一,原数2048为a每次循环除以2,当a小于1时退出程序。while循环在每次执行循环体之前,都要先对test_expression循环条件求值,如果循环条件为真,则运行循环体部分。

0-debug.apkhello-0-debug.apk安装以后是这样:话说在编译的时候可能出现空间不足的情况,根据虚拟机的不同(vmware或virtualbox)自行扩容吧。最后我们来瞧瞧简易版Python开发的2048这个游戏的源代码。

首先,打开python并创建一个新的PY文件。其次,importos,因为涉及系统文件的路径,因此首先在此处导入系统模块。随后,可以双击打开HTML文件,然后就可以看到书写的网页,如下图所示。

第一阶段:Python语言基础主要学习Python最基础知识,如Python数据类型、字符串、函数、类、文件操作等。阶段课程结束后,学员需要完成Pygame实战飞机大战、2048等项目。

Python程序开发之简单小程序实例(11)小游戏-跳动的小球

项目功能用户控制挡板来阻挡跳动的小球。项目分析根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。

安装Python:在编写Python程序之前,需要在计算机上安装Python。Python提供了下载安装程序的链接,可以根据操作系统版本下载安装程序。编写代码:可以使用任何文本编辑器编写Python代码。

首先要明确一点,python是后台语言,不能直接用python来写微信小程序的。微信小程序是用jascript和css来写的。python只是用来给小程序提供后台数据用的。同样可以为小程序提供后台数据的有ja和php。

对于学python编程的途径可以说是有两种,一种是自学,一种是到培训机构进行报名学习,python是一门编程语言,是一门可以跟计算机打交道的语言,学习python编程语言需要做的是实操而不是大量的刷题;学习时间大概是4-6个月。

使用python制作一个抽奖小游戏——骰子游戏

1、汇总这个可以创建多种玩法,随机摇骰子只是其中的一种,还可以先让一个人输入一个数字并储存起来,然后再执行程序,如果数字不等于数字就不是星,当数字等于时就是星并结束程序——类似抽奖。。

2、python版的地址:DiceGame其中python版需要安装了python5才可以运行。python2的下载地址:python2朋友写了一个精美的手机版,用AdobeFlashLite完成的:BeautyDice.rar下面是游戏规则。

3、利用random函数写了个小程序。你把输入和输出与html元素连接一下应该就可以了。

VB代码注释 哪位高人帮帮我吧

Option?Explicit

'声明在变量使用之前必须先定义

Private?Const?MERGEPAINT?=?&HBB0226

Private?Const?SRCAND?=?&H8800C6

'MERGEPAINT与SRCAND在本段代码中没有使用

Private?Const?SRCCOPY?=?&HCC0020

'bitblt函数中的一个操作数

Private?Declare?Function?BitBlt?Lib?"gdi32"?(ByVal?hDestDC?As?Long,?ByVal?x?As?Long,?ByVal?y?As?Long,?ByVal?nWidth?As?Long,?ByVal?nHeight?As?Long,?ByVal?hSrcDC?As?Long,?ByVal?xSrc?As?Long,?ByVal?ySrc?As?Long,?ByVal?dwRop?As?Long)?As?Long

'此函数用于对指定的区域中的像素进行位块(bit_block)转换,以传送到目标对象区域。

'?Variables?for?positioning?the?ball.

'以下几个变量及常量的定义用于控制小球的位置、移动等参数

Private?Const?BallR?=?10'?半径

Private?Const?BallD?=?2?*?BallR?+?1?'?直径

Private?CurX?As?Single?'?圆球所在的当前x坐标

Private?CurY?As?Single?'?圆球所在的当前y坐标

Private?OldX?As?Single?'?上一次绘制圆的x坐标

Private?OldY?As?Single?'?上一次绘制圆的y坐标

Private?VelX?As?Single?'?水平位移距离

Private?VelY?As?Single?'?垂直位移距离

Private?Xmax?As?Single?'?圆心能够到达的最大X坐标

Private?Ymax?As?Single?'?圆心能够到达的最大Y坐标

'?DrawBall过程用于绘制圆球

Private?Sub?DrawBall()

'?抹去原来的小球

BitBlt?picCanvas.hDC,?_

OldX?-?BallR,?OldY?-?BallR,?BallD,?BallD,?_

picHidden.hDC,?OldX?-?BallR,?OldY?-?BallR,?SRCCOPY

OldX?=?CurX

OldY?=?CurY

'把当前圆心的X坐标、Y坐标保存在OldX、OldY中

'?重新在?curX,CurY?坐标?绘制半径为ballR的圆球

picCanvas.Circle?(CurX,?CurY),?BallR

'?刷新框

picCanvas.Refresh

End?Sub

'?初始化小球的位置等信息,并绘制小球

Private?Sub?Form_Load()

'?是窗口大小恰好适应框的大小

Width?=?(Width?-?ScaleWidth)?+?picCanvas.Width

'计算窗体应该的宽度?=框的宽度+边框的宽度

Height?=?(Height?-?ScaleHeight)?+?picCanvas.Height

'计算窗体应该的高度?=框的高度+边框的高度

Xmax?=?picCanvas.ScaleWidth?-?BallR

'新的圆边界能到达的X坐标

Ymax?=?picCanvas.ScaleHeight?-?BallR

'新的圆边界能到达的y坐标

'?初始化圆球的位置和移动方向

Randomize'随机

CurX?=?Int((Xmax?-?BallR?+?1)?*?Rnd?+?BallR)

CurY?=?Int((Ymax?-?BallR?+?1)?*?Rnd?+?BallR)

'随机产生一个在框内的圆心坐标的X、Y

OldX?=?CurX

OldY?=?CurY

'把当前圆心的X坐标、Y坐标保存在OldX、OldY中

VelX?=?Int((10?-?5?+?1)?*?Rnd?+?5)

VelY?=?Int((10?-?5?+?1)?*?Rnd?+?5)

'随机产生VelX和VelY,即每次圆心所移动的距离,也可以说是移动速度

DrawBall

'调用DrawBall过程绘制圆球

End?Sub

'?通过Timer移动圆球,从而达到动画移动效果

Private?Sub?tmrBounce_Timer()

CurX?=?CurX?+?VelX

'计算新的小球的X坐标

If?(CurX?>?Xmax)?Then

'如果新的x坐标到达框的最右侧

CurX?=?Xmax

'则将x坐标置为框的最右侧

VelX?=?-VelX

'移动的方向改为相反方向,即为向左

'Beep

'取消此处的注释则在小球到达框的最右侧时?咚?的?响一声,后面的一样,不再介绍

ElseIf?(CurX?<?BallR)?Then

'如果新的x坐标到达框的最左侧

CurX?=?BallR

'移动的方向改为相反方向,即为向右

VelX?=?-VelX

'Beep

End?If

'计算新的小球的Y坐标

CurY?=?CurY?+?VelY

'如果新的Y坐标到达框的最下侧

If?(CurY?>?Ymax)?Then

'则将Y坐标置为框的最下侧

CurY?=?Ymax

'移动的方向改为相反方向,即为向上

VelY?=?-VelY

'Beep

ElseIf?(CurY?<?BallR)?Then

'如果新的Y坐标到达框的最上侧

CurY?=?BallR

'则将Y坐标置为框的最上侧

VelY?=?-VelY

'移动的方向改为相反方向,即为向下

'Beep

End?If

'得到新的圆心后重回圆球

DrawBall

End?Sub

这段代码使用了API,还用了两个框,其实这个程序不需要这么复杂,按照这里做节省许多代码,也不用那么多控件://hi.baidu/kfqjhg/blog/item/bd5dc6034e0d67d8277fb5bd.html

关于BITBlt函数请参考:://baike.baidu/view/1080366.htm

因为按照以上代码远点太小所以更改了圆的半径,运行后结果如图: