精华内容
下载资源
问答
  • 主要介绍了python3实现弹弹球小游戏,图形用户界面tkinter,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 我对她说,等着,马上为你量身定做一个去,你爱玩游戏,整好今天周末给你做个小小的游戏,让你耍一耍~哈哈哈哈,我太机智了。 效果如下: css部分代码: #main{ width: 600px; height:300px; background: gray...
  • unity3D(2018.3)实现开小球游戏游戏运行时,点击鼠标左键,生成绿色小球,并朝红色方块飞来。点击鼠标右键,红色方块跳起。当红色方块与绿色小球相撞时,绿色小球被开。
  • STM32F103 弹弹球游戏 程序,可自行移植,平台野火 指南者STM32F103
  • 弹弹球小游戏(Java)

    千次阅读 2021-12-14 23:14:00
    游戏规则:利用键盘上的->或者<-控制方向,用球拍接住小球,否则游戏结束! 该代码主要利用了GUI的绘图,用Timer保证球拍和小球位置的更新,用适配器KeyAdapter获取用户的指令,参考代码如下,需要改进之处请...

    游戏规则:利用键盘上的->或者<-控制方向,用球拍接住小球,否则游戏结束!

    该代码主要利用了GUI的绘图,用Timer保证球拍和小球位置的更新,用适配器KeyAdapter获取用户的指令,参考代码如下,需要改进之处请各位大佬多多指正

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class checkb {
    	//设置frame
    	Frame frame=new Frame("欢迎林giegie来到弹弹球小游戏");
    	private final int TABLE_WIDTH =300;
    	private final int TABLE_HEIGHT =400;
    	//设置小球
    	private final int BALL_SIZE=16;
    	private int BALLX=120;
    	private int BALLY=20;
    	private int SPEEDX=10;
    	private int SPEEDY=5;
    	//设置拍子
    	private final int RACKET_WIDTH=60;
    	private final int RACKET_HEIGHT=20;
    	private int RACKETX=120;
    	private int RACKETY=340;
    	//结束标志
    	private boolean isover=false;
    	//时间对象
    	private Timer timer;
    	//画布
    	private class Mycanvas extends Canvas{
    		@Override
    		public void paint(Graphics g) {
    			// TODO Auto-generated method stub
    			super.paint(g);
    			//游戏结束、进行时
    			if(isover){
    				g.setColor(Color.black);
    				g.setFont(new Font("Times",Font.BOLD,30));
    				g.drawString("林giegie败北", 150, 200);
    			}else{
    				//画球、球拍
                    g.fillOval(BALLX, BALLY, BALL_SIZE, BALL_SIZE);	
                    g.fillRect(RACKETX, RACKETY, RACKET_WIDTH, RACKET_HEIGHT);
    			}
    			
    		}
    	}
    	//组装组件
    	public void inti(){
    	        class listenere extends KeyAdapter{
    			@Override
    			public void keyPressed(KeyEvent e) {
    				// TODO Auto-generated method stub
    				super.keyPressed(e);
    				int s=e.getKeyCode();
    				if(RACKETX>=0&&s==KeyEvent.VK_LEFT){
    					RACKETX-=10;
    				}
    				if(RACKETX<=TABLE_WIDTH-RACKET_WIDTH&&s==KeyEvent.VK_RIGHT){
    					RACKETX+=10;
    				}
    			}
    			}
    	        listenere listener=new listenere();
    	        Mycanvas Mycan=new Mycanvas();
    	        frame.addKeyListener(listener);
    	        Mycan.addKeyListener(listener);
    	    class task implements ActionListener{
    	    	@Override
    	    	public void actionPerformed(ActionEvent e) {
    	    		// TODO Auto-generated method stub
    	    		//小球到达窗口两侧
    	    		if(BALLX<=0||BALLX>=TABLE_WIDTH-BALL_SIZE)
    	    			SPEEDX=-SPEEDX;
    	    		//小球到达顶部
    	    		if(BALLY<=0)
    	    			 SPEEDY=-SPEEDY;
    	    		//小球接触到球拍
    	    		if(BALLX>RACKETX&&BALLX<RACKETX+RACKET_WIDTH&&BALLY>=RACKETY-BALL_SIZE)
    	    			SPEEDY=-SPEEDY;
    	    		//球拍没接住小球
    	    		if(BALLY>=RACKETY&&(BALLX<RACKETX-BALL_SIZE||BALLX>RACKETX+BALL_SIZE)){
    	    			isover=true;
    	    		    Mycan.repaint();
    	    		    timer.stop();
    	    	}
    	    	BALLX+=SPEEDX;
    	    	BALLY+=SPEEDY;
    	    	Mycan.repaint();
    	    	}
    	    	}
    	        timer = new Timer(100,new task());
    	        timer.start();
    	        Mycan.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));
    	        frame.add(Mycan);
    
    	        //设置frame最佳大小,并可视
    	        frame.pack();
    	        frame.setVisible(true);
    	}
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
               new checkb().inti();
    	}
    
    }
    

    展开全文
  • c语言 弹弹球小游戏

    千次阅读 2018-07-14 21:11:00
    2、 3、条形木块 */ typedef struct Point { int x; int y; } Point; //数据模型 typedef struct Ball { //坐标 Point point; //形状,普通 火球 激光 int shape; //水平方向 r:1 l:-1 : 'l' 'r' int ...

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <time.h>
    #include<mmsystem.h>
    #pragma comment(lib, "WINMM.LIB")

    #define BRICK_NUM 100
    //形状类型
    #define SQUARE 1
    #define STAR 2
    #define DIAMOND 3

    /*
    建立对应模型:20/80 程序:核心代码20% 非核心的代码80%
    1、砖块:描述砖块
    2、球
    3、条形木块
    */
    typedef struct Point
    {
    int x;
    int y;
    } Point;
    //球数据模型
    typedef struct Ball
    {
    //坐标
    Point point;
    //形状,普通 火球 激光
    int shape;
    //水平方向 r:1 l:-1 : 'l' 'r'
    int hdir;
    //垂直方向 u :1 d:-1
    int vdir;
    //速度
    int speed;
    } Ball;

    //木板
    typedef struct Board
    {
    //坐标
    Point point;
    //长度
    int length;
    //方向 左(-1) 右(1)
    int dir;
    //速度
    int speed;
    } Board;

    //构建类型,摸拟砖块
    typedef struct Brick
    {
    //坐标
    Point point;
    //形状 :1:正方形(普通砖块 10) 2(圆形 20) 3:
    int shape;
    } Brick;


    //砖块
    Brick bricks[BRICK_NUM];

    //构建一个球
    Ball ball;
    //构建一个木板
    Board board;

    //计数器,
    int count=0;
    //总分值
    int totalScore=0;

    void init()
    {
    srand(time(0));
    //初始化球
    ball.point.x=36;
    ball.point.y=22;
    ball.shape=1;
    ball.speed=200;
    ball.vdir=1;//向上 u 向下 d 向左 l 向右 r
    ball.hdir=-1;
    //初始化木板
    board.point.x=32;
    board.point.y=23;
    board.length=5;
    board.speed=300;
    board.dir=-1;
    //初始化砖块
    initBrick();
    }

    /*
    功能:定位光标(输出)位置
    */
    void setPosition(Point point)
    {
    //用户坐标信息转换成内部坐标信息
    COORD coord= {point.x,point.y};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
    }

    /*
    可视化显示木板,球
    */
    void showBall()
    {
    setPosition(ball.point);
    //颜色:r g b
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY) ;
    printf("◎");
    }

    /*
    *可视化显示木板 (重构)--》进化--》
    */
    void showBorad()
    {
    int index=0;
    setPosition(board.point);
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY) ;
    for(index=0; index<board.length; index++)
    {
    printf("〓");
    }
    }

    /*
    随机数字
    */
    int createRan()
    {
    return rand()%3+1;// 0 12
    }

    /*
    初始化砖块信息
    */
    void initBrick()
    {
    //确定第一个砖块位置 x ,y 程序逻辑会引起修改
    int x=10;
    int y=2;
    int i=0;
    //保存最初坐标
    int index=0;
    //100=25*4
    for(index=0; index<BRICK_NUM; index++)
    {
    //确定每一行起始坐标
    if(index!=0 && index%25==0) //25 50 75
    {
    //换行
    x=bricks[i*25].point.x;
    y=bricks[i*25].point.y+1;
    i++;
    }
    //具体化
    bricks[index].point.x=x;
    bricks[index].point.y=y;
    //形状
    bricks[index].shape=createRan();
    x=x+2;
    }
    }

    /*
    *图形化砖块
    */
    void showBrick()
    {
    int index=0;
    for(index=0; index<BRICK_NUM; index++)
    {
    setPosition(bricks[index].point);
    switch(bricks[index].shape)
    {
    case SQUARE:
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);
    printf("■");
    break;
    case STAR:
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
    FOREGROUND_GREEN | FOREGROUND_INTENSITY);

    printf("★");
    break;
    case DIAMOND:
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_INTENSITY);
    printf("◆");
    break;
    }
    }
    }


    /*
    检查小球是否碰到了木板
    1 碰
    0 没有碰到
    */
    int ballToBoard()
    {
    //木板的启始x值
    int bxs=board.point.x;
    int bxe=board.point.x+board.length*2;
    if( (ball.point.x>=bxs && ball.point.x<=bxe) && ball.point.y==board.point.y-1 )
    {
    return 1;
    }
    return 0;
    }


    void selDir(){
    //函数:异步
    if(GetAsyncKeyState(VK_LEFT)){
    board.dir=-1;
    }else if(GetAsyncKeyState(VK_RIGHT)){
    board.dir=1;
    }
    }

    /*
    移动木板
    */
    void moveBoard()
    {
    int index=0;
    setPosition(board.point);
    //清除
    for(index=0; index<board.length; index++)
    {
    printf(" ");
    }
    //新坐标:
    board.point.x+=2*board.dir;
    //重新
    setPosition(board.point);
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_INTENSITY) ;
    for(index=0; index<board.length; index++)
    {
    printf("〓");
    }
    }

    /*
    检查小球是否碰到砖块
    0
    1
    2
    3
    */
    int ballToBrick(){
    int index=0;
    for(index=0;index<BRICK_NUM;index++){
    if(bricks[index].point.x==ball.point.x && bricks[index].point.y==ball.point.y){
    return bricks[index].shape;;
    }
    }
    return 0;
    }

    /*
    移动小球
    */
    void moveBall()
    {
    int left=4;
    int right=64;
    int top=2;
    int bottom=24;
    //水平、垂直增量
    int stepx=2;
    int stepy=1;
    int shape=0;
    Point p={76,10};
    //得到小球原来位置
    Point oldPoint=ball.point;
    srand(time(0));
    //原来位置图形清除
    setPosition(oldPoint);
    printf(" ");

    //检查水平方向
    if(ball.point.x<left)
    {
    //改变水平方向
    ball.hdir=1;
    }
    else if(ball.point.x>right)
    {
    ball.hdir=-1;
    }

    //检查垂直方向
    if(ball.point.y<top)
    {
    ball.vdir=-1;
    }
    else if(ball.point.y>bottom)
    {
    ball.vdir=1;
    }
    else if(ballToBoard()==1)
    {
    ball.vdir=1;
    }

    //确定小球的新的位置
    ball.point.x=oldPoint.x+stepx*ball.hdir;
    ball.point.y=oldPoint.y-stepy*ball.vdir;

    //判断是否碰到砖块 0 1 2 3
    shape=ballToBrick();
    //计算碰了多少块砖块
    count+=shape>0?1:0;

    setPosition(p);
    totalScore+=shape*10;
    printf("小球碰了%d砖块,计分:%d",count,totalScore);
    //重新绘制
    setPosition(ball.point);
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY) ;
    printf("◎");
    }

    /*
    功能模块:绘制围墙 1B=8bit A:1B 中文:2B
    */
    void paintWall()
    {
    int index=0;
    Point point;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
    //上边。下边
    for(index=0; index<70; index=index+2)
    {
    point.x=index;
    point.y=0;
    setPosition(point);
    printf("■");
    point.y=26;
    setPosition(point);
    printf("■");
    }
    //左边、右边akes[0].x=oldX+2;
    for(index=1; index<=26; index++)
    {
    point.x=0;
    point.y=index;
    setPosition(point);
    printf("■");
    point.x=68;
    setPosition(point);
    printf("■");
    }
    }

    void show()
    {
    paintWall();
    showBrick();
    showBall();
    showBorad();
    }

    int main()
    {

    init();
    show();
    while(1)
    {
    moveBall();
    selDir();
    moveBoard();
    //速度
    Sleep(ball.speed);
    }
    return 0;
    }

    转载于:https://www.cnblogs.com/ysg520/p/9310985.html

    展开全文
  • 【python】小游戏程序——弹跳小球

    千次阅读 多人点赞 2019-08-26 14:54:55
    大概在一年前写了一篇使用C语言编写的弹跳小球小游戏:【c语言】小游戏程序——弹跳小球 如今学了python,所以就想使用python来写个小游戏练习下手感 ———————————————LINE————————————...

    大概在一年前写了一篇使用C语言编写的弹跳小球小游戏:【c语言】小游戏程序——弹跳小球

    如今学了python,所以就想使用python来写个小游戏练习下手感

    ———————————————LINE————————————————

    先来看看最后的效果:

    ——————————————下面是正文———————————————

           相比C语言,python中提供了很多第三方库用以简便开发,其中就有一个叫 “pygame” 的第三方库可以用以开发一些简便的游戏,本篇博文就用到了这个第三方库。下面说明下编译环境以及pygame的配置方法

    编译环境:pycharm

    在pycharm中配置pygame的方法:其实加载第三方库的方法有很多,如使用pip工具等,以下介绍我用起来十分方便的方法。

                                                                       

    按照以上图示选择之后,将进入第三方库配置页面:

    之后按照以下指示即可将第三方库安装完成:

    安装 pygame 之后,我们即可在窗口进行程序的编写。

    ——————————————下面是代码———————————————

    首先我们把需要用到的库导入进来:

    import pygame,sys
    import time
    

    之后进行初始化设置:

    pygame.init()  
    screen = pygame.display.set_mode((600,400))
    pygame.display.set_caption("弹跳小球")
    ball = pygame.image.load("1.jpg")
    ballrect = ball.get_rect()
    

    此处,先对代码进行解析:

    • pygame.init() — 初始化所有导入的 pygame 模块
    • pygame.display.set_mode() — 设置游戏窗体大小,此处将窗体设置成600x400
    • pygame.display.set_caption() — 设置游戏窗体名称
    • pygame.image.load() — 导入小球的照片,可上网百度
    • pygame.get_rect() — 将图片控制在矩形之内,这里可能需要更加详细地说明,对导入的图片进行控制,实际上是对图片的矩形进行控制,如下图我在博文中所使用的球为例:

                                           

    则可以根据坐标系获取更多的属性:比如top,left,bottom,right,size,width,height等。

    初始化完成之后,我们就可以进行小球的属性设置:

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
    
        time.sleep(0.003)
        ballrect = ballrect.move(speed[0],speed[1])
        if ballrect.left < 0 or ballrect.right > 600 :
            speed[0] =- speed[0]
        if ballrect.top < 0 or ballrect.bottom > 400 :
            speed[1] =- speed[1]

           我们可以知道,当小球碰到左右上下的框的时候,小球需要反弹回来,所以当包裹小球的矩形超过了窗体的大小时,将其速度设置为负,即反向速度,以实现 “弹” 这个特性。 在代码中我添加了一个延时,如果没有添加延时的话效果就是如下:

     

    最后添加一些收尾工作:

        screen.fill(0,0,0)  %因为小球划过的区域系统会默认填充为白色,所以使用该函数将划过的区域填充为黑色,RGB(0,0,0)即黑色
        screen.blit(ball,ballrect)  %将一个平面的一部分或全部图象整块从这个平面复制到另一个平面
        pygame.display.update()  %刷新函数

    ​​​​​​​

    展开全文
  • JavaScript 弹弹球小游戏(二)

    千次阅读 2015-04-24 14:58:40
    新版弹弹球小游戏,在上一次的基础上,做了改进,可以任意添加小球,而且跑动时可以互不干扰 var step = 10; function createBall() { //添加到DIV var div = document.getElementById...



    新版弹弹球小游戏,在上一次的基础上,做了改进,可以任意添加小球,而且跑动时可以互不干扰


    <html>
    
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<script type="text/javascript">
    			var step = 10;
    
    			function createBall() {
    				//添加到DIV
    				var div = document.getElementById("showDiv");
    				//创建球对象
    				var img = document.createElement("img");
    				img.src = "img/qlz.jpg";
    				img.style.height = "10px";
    				img.style.position = "absolute";
    				img.style.left = parseInt(Math.random() * 59) * 10 + "px";
    				img.style.top = parseInt(Math.random() * 39) * 10 + "px";
    				img.xflag = true;
    				img.yflag = true;
    				//将球添加到DIV
    				div.appendChild(img);
    			}
    
    			function moveBall() {
    				window.setInterval(function() {
    					//获取所有的球
    					var balls = document.getElementsByTagName("img");
    					//遍历小球
    					for (var i = 0; i < balls.length; i++) {
    						var ball = balls[i];
    						var x = parseInt(ball.style.left);
    						var y = parseInt(ball.style.top);
    						//判断X的大小
    						if (ball.xflag) {
    							ball.style.left = x + step + "px";
    							if (x >= 590) {
    								ball.xflag = false;
    							}
    						} else {
    							ball.style.left = x - step + "px";
    							if (x <= 20) {
    								ball.xflag = true;
    							}
    						}
    						//判断Y的大小
    						if (ball.yflag) {
    							ball.style.top = y + step + "px";
    							if (y >= 390) {
    								ball.yflag = false;
    							}
    						} else {
    							ball.style.top = y - step + "px";
    							if (y <= 20) {
    								ball.yflag = true;
    							}
    						}
    					}
    				}, 40);
    			}
    		</script>
    	</head>
    
    	<body οnlοad="moveBall();">
    		<div id="showDiv" style="border: solid 2px;height: 400px;width: 600px;"></div>
    		<input type="button" value="新增一个小球" οnclick="createBall();" />
    	</body>
    
    </html>

    游戏效果图如下:


    展开全文
  • 单机版弹球游戏 var step = 20; var qiuXFlag = true; var qiuYFlag = true; var intervalId = 0; function qiuMove() { intervalId = window.setInterval(function() { //根据按键...
  • 弹力小球游戏

    2015-12-02 11:02:17
    flash弹力小球,有源代码,代码里有详细的解释。希望对各位有所帮助。
  • 欢迎和修同学一起学习,从今天开始,修爸要给...移动方块板接住小球的游戏也用掌控板实现一个,主要是一个小球和方块板的绘制和移动规则,先看下实际效果: 绘制功能提示菜单: 新建变量:小球相关变量、平...
  • unity3D实现小游戏案例--开小球

    千次阅读 多人点赞 2019-10-10 21:12:21
    当红色方块与绿色小球相撞时,绿色小球被开。 游戏运行效果: 游戏实现细节: 控制方块代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public ...
  • 刚学 写着玩的 光屏幕上方所有的小块为胜利
  • C语言 小球 小游戏(控制台)

    千次阅读 2020-02-01 15:33:50
    C语言实现小球游戏 编译环境:vs2019 需求: 小球在控制台界面内不停移动,碰到边界则改变方向,控制棍子接住小球,得分加一,小球没有被接住则游戏结束。 思路: _getch()函数接收a、d两个字符控制控制棍子移动,...
  • 小球游戏和代码

    2015-11-14 16:03:50
    简单的小球游戏,刚学FLASH的可以看看,代码也比较简单
  • 【c语言】小游戏程序——弹跳小球

    千次阅读 2021-11-24 17:34:46
    在说一下其中一个最简单的程序:弹跳小球 (易懂,容易学会) 首先我们知道,在窗口的坐标系原点是在窗口左上角的,如图所示 然后我们如果想在这个坐标系里面的某个点上画出一个小球,那么它的坐标系应该...
  • 用Qt5做的一个弹力球小游戏,Qt5及版本以上能直接运行。这个小游戏代码比较多,希望下载的同学能改进,一起交流。
  • 小球砖块游戏

    2012-12-11 21:22:04
    编写的简单java的小球砖块游戏,运用GUI界面
  • Python - 弹弹小游戏

    2018-11-03 13:22:32
    本项目共分为三个主界面,开始主界面实现全屏控制、满天星动态背景、背景动态开关控制等,运行主界面实现挡板控制,小球碰撞控制,分数控制系统等,结束界面实现分数信息显示等,以供交流借鉴之用。
  • Unity3D弹力小球

    2018-09-03 13:58:12
    最基础的Unity3D弹力小球的做法,包括小球从高处落下,有弹性地慢慢静止
  • Python小游戏之弹跳的小球 每天一个简单的小游戏,适合初学者练习和熟悉python应用。 编程工具:Pycharm2020, python版本:3.8 游戏库需要安装第一:游戏库的安装配置 如下图: 安装完成后,验证一下是否安装成功...
  • Java小球躲避小游戏

    2019-06-24 08:06:52
    Java开发的小球躲避小游戏。通过上下左右按键控制小球移动,小球移动的方向包括:横向、纵向、斜向,小球具有初始生命值。小球通过移动来躲避炮弹,当小球碰到炮弹时,产生爆炸的动画效果。注释很全面,速度、初始...
  • 小球打砖块游戏

    2015-05-06 15:25:36
    这是本人在学习Java一段时间后,为深化面向对象的方法,写的一个简单程序,希望可以帮到一些想我一样的初学者! 详情http://blog.csdn.net/fzh595408240/article/details/45535649

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,136
精华内容 5,254
关键字:

弹弹球小游戏