精华内容
下载资源
问答
  • 弹球游戏 弹球游戏的源文件和头文件 射击游戏 小球打砖块
  • 弹球游戏

    2012-03-15 21:05:08
    刚刚做出来的一款弹球游戏,第一次用C++来编写游戏,所以对内存操作不熟,会很卡 源代码我会再上传的,玩下觉得可以就再找我的资源里下源代码拿去研究拿去卖拿去做各种你想要的事好了
  • 本文实例讲述了Python实现的弹球游戏。分享给大家供大家参考,具体如下:弹球1. Ball draw负责移动Ball碰撞检测,反弹,Ball检测Paddle2.Paddledraw负责移动Paddle碰撞检测,确定能不能继续监听键盘事件3.主...

    本文实例讲述了Python实现的弹球小游戏。分享给大家供大家参考,具体如下:

    弹球

    1. Ball 类

    draw负责移动Ball

    碰撞检测,反弹,Ball检测Paddle

    2.Paddle类

    draw负责移动Paddle

    碰撞检测,确定能不能继续

    监听键盘事件

    3.主循环

    绘制Ball和Paddle

    update

    sleep

    代码

    from Tkinter import *

    import random

    import time

    class Ball:

    def __init__(self, canvas, paddle, color):

    self.canvas = canvas

    self.paddle = paddle

    self.id = canvas.create_oval(10, 10, 25, 25, fill=color)

    self.canvas.move(self.id, 245, 100)

    startx = [-3, -2, -1, 1, 2, 3]

    random.shuffle(startx)

    self.x = startx[0]

    self.y = -3

    self.canvas_height = self.canvas.winfo_height()

    self.canvas_width = self.canvas.winfo_width()

    self.hit_bottom = False

    def draw(self):

    self.canvas.move(self.id, self.x, self.y)

    pos = self.canvas.coords(self.id)#top-left bottom-right

    if (pos[1] <= 0 or self.hit_paddle(pos) == True):

    self.y = -self.y

    if (pos[0] <= 0 or pos[2] >= self.canvas_width):

    self.x = -self.x

    if (pos[3] >= self.canvas_height):

    self.hit_bottom = True

    def hit_paddle(self, pos):

    paddle_pos = self.canvas.coords(self.paddle.id)

    if (pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]):

    if (pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]):

    return True

    return False

    class Paddle:

    def __init__(self, canvas, color):

    self.canvas = canvas

    self.id = canvas.create_rectangle(0, 0, 100, 10, fill = color)

    self.x = 0

    self.canvas.move(self.id, 200, 300)

    self.canvas_width = self.canvas.winfo_width()

    self.canvas.bind_all("", self.turn_left)

    self.canvas.bind_all("", self.turn_right)

    def draw(self):

    pos = self.canvas.coords(self.id)

    if (pos[0] + self.x >= 0 and pos[2] + self.x <= self.canvas_width):

    self.canvas.move(self.id, self.x, 0)

    #self.x = 0

    def turn_left(self, event):

    self.x = -4

    def turn_right(self, event):

    self.x = 4

    tk = Tk()

    tk.title("Game")

    tk.resizable(0, 0)#not resizable

    tk.wm_attributes("-topmost", 1)#at top

    canvas = Canvas(tk, width = 500, height = 500, bd = 0, highlightthickness = 0)

    canvas.pack()

    tk.update()#init

    paddle = Paddle(canvas, 'blue')

    ball = Ball(canvas, paddle, 'red')

    while 1:

    if (ball.hit_bottom == False):

    ball.draw()

    paddle.draw()

    tk.update_idletasks()

    tk.update()

    time.sleep(0.01)

    运行效果如下图:

    201781112409683.jpg?201771112426

    更多关于Python相关内容感兴趣的读者可查看本站专题:《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

    希望本文所述对大家Python程序设计有所帮助。

    本文标题: Python实现的弹球小游戏示例

    本文地址: http://www.cppcns.com/jiaoben/python/198369.html

    展开全文
  • 弹球游戏

    2018-04-19 14:54:05
    #弹球游戏 from tkinter import * import random import time #创建ball class Ball: def __init__(self,canvas,color): self.canvas = canvas self.id = canvas.create_oval(10,10,25,25,fill=col...
    #弹球游戏
    
    from tkinter import *
    import random
    import time
    
    #创建ball类
    class Ball:
        def __init__(self,canvas,color):
            self.canvas = canvas
            self.id = canvas.create_oval(10,10,25,25,fill=color)
            self.canvas.move( self.id,245,100)
            #改变起始的方向,创建一个列表
            starts=[-3,-2,-1,1,2,3]
            #将列表混排一下
            random.shuffle(starts)
            self.x = starts[0]
            #-1,代表开始球向上
            self.y = -1
            self.canvas_height=self.canvas.winfo_height()
            self.canvas_width=self.canvas.winfo_width()
            
    #让球移动
        def draw(self):
            self.canvas.move(self.id,self.x,self.y)
            #返回一个由四个数字组成的列表来表示坐标
            pos=self.canvas.coords(self.id)
            print(pos)
            #椭圆的左上角的y坐标<0,代表出了上边界,然后要让球向下移动
            if pos[1]<=0:
                self.y=5
            #椭圆的右下角的y坐标出了下边界,然后要让球向上移动
            if pos[3]>=self.canvas_height:
                self.y=-5
             #椭圆的左上角的x坐标<0,代表出了左边界,然后要让球向右移动
            if pos[0]<=0:
                self.x=5
            #椭圆的右下角的x坐标出了右边界,然后要让球向左移动
            if pos[2]>=self.canvas_width:
                self.x=-5
    
    #创建游戏的画布           
    tk=Tk()
    tk.title("ball Game")
    #resizable()参数为0表示窗口的大小不可调整,参数为1代表可调整
    tk.resizable(1,1)
    #topmost指定是否是一个永远最前的窗口Wm命令用于与窗口管理器进行交互,为了控制一些事情比如窗口的标题、大小或者一些改变、调整
    tk.wm_attributes("-topmost",1)
    canvas=Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)
    canvas.pack()
    tk.update()
                
                
    ball=Ball(canvas,'red')
    while 1:
        ball.draw()
        tk.update_idletasks()
        tk.update()
        time.sleep(0.01)

    展开全文
  • 阅读本文大概需要15分钟我们前面讲了几篇关于的知识点,为了让大家更好的掌握的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球游戏,一来可以把的知识融会一下,二来加深对Python的兴趣....

    阅读本文大概需要15分钟

    我们前面讲了几篇关于类的知识点,为了让大家更好的掌握类的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python写小游戏还是蛮方便的,蛮有意思的~~

    先看一下我们的最终效果图

    我们分9步来讲解如何写这个小游戏

    1.创建游戏的主界面

    我们用Python的内置模块Tkinter来完成了,它是Python的标准GUI工具包,可以非常方便在制作GUI小工具,因为是跨平台的,可以方便的在win和linux下运行,我们用Tk里的canvas绘图功能来制作一个小游戏.先来把主界面画出来

    1).创建一个tk的实例

    2).然后给这个窗口取一个名字叫game

    3).通知窗口管理器调整布局大小,0,0表示不能被拉升

    4).创建一个长为400*500的界面,背景色为默认,边框为厚度为0

    5).通知窗口管理器注册组件

    6).刷新一下界面

    2.创建一个Ball球的类

    好主界面有了,我们就开始创建球

    1)首先我们创建一个Ball的类,这个类的初始化参数有两个:

    一个canvas也就是画图用来画一个球,一个是color,表示球的颜色

    2)在类的初始化的函数里面初始化canvas,

    画一个实心的球并记录下它的id

    创建球的默认在主界面上的位置,我们把它放屏幕中间

    然后让球出现在主界面上:

    3.我们让球向上动起来

    刚才在Ball类里面有一个draw函数,我们现在在draw里面加点东西,让球向上运动

    更多详情请阅读原文 :

    更多Python 原创教程和趣味编程 请关注微信公众号: 菜鸟学python

    展开全文
  • java弹球游戏

    千次阅读 2018-06-20 09:53:15
    就像在今天的博客中写到的弹球游戏一样,把实际存在的具有相同属性和行为的事物抽象为一个,此类就拥有了其中的属性和行为,在使用它时就可以通过它的对象进行操作中的一些属性和方法。弹球游戏中我们可以将球...

    欢迎访问我的个人博客 https://jialaner.cn/       

    在上次的博客中谈到了面向对象的开发思想,在我的理解中面向对象编程思想,就意味着现实与程序的抽象对接,也就是很多人说的万事万物皆对象了。

           就像在今天的博客中写到的弹球游戏一样,把实际存在的具有相同属性和行为的事物抽象为一个类,此类就拥有了其中的属性和行为,在使用它时就可以通过它的对象进行操作类中的一些属性和方法。弹球游戏中我们可以将球、弹板、背景抽象为几个类。

    ●Ball球类:属性:坐标、半径、颜色、X轴Y轴运动的方向速度   方法:球的运动

    ●Boald弹板类:属性:状态、坐标、长宽、颜色 方法:弹板的移动

    ●GameView类:此类就是窗口的创建,执行游戏的画图,以及重画。

    ●GameRun类:此类为刷新界面类,就是控制重画的速度。

    ●GameControl类:此类是监听键盘类,此类控制着弹板的移动。

    上一个效果图:

    现在开始上代码;

    Ball类:

    public class Ball {
    	
    	public static boolean ballstate = true;
    	private int ballRX;
    	private int ballRY;
    	private final int BALL_R = 10;
    	private Color BALL_COLOR;
    	
    	private int directionX = -1;
    	private int directionY = 1;
    	
    	
    	
    	private Boald boaldTop;
    	private Boald boaldDown;
    	
    	public Ball(int ballRX, int ballRY, Color BALL_COLOR, Boald boaldTop, Boald boaldDown) {
    		
    		this.setBallRX(ballRX);
    		this.setBallRY(ballRY);
    		this.setBALL_COLOR(BALL_COLOR);
    		
    		this.boaldTop = boaldTop;
    		this.boaldDown = boaldDown;
    	}
    
    	public int getBallRX() {
    		return ballRX;
    	}
    
    	public void setBallRX(int ballRX) {
    		this.ballRX = ballRX;
    	}
    
    	public int getBallRY() {
    		return ballRY;
    	}
    
    	public void setBallRY(int ballRY) {
    		this.ballRY = ballRY;
    	}
    
    	public Color getBALL_COLOR() {
    		return BALL_COLOR;
    	}
    
    	public void setBALL_COLOR(Color bALL_COLOR) {
    		BALL_COLOR = bALL_COLOR;
    	}
    
    	public int getBALL_R() {
    		return BALL_R;
    	}
    
    	public void ballMove() {
    		
    		
    		
    		if(ballstate) {
    			
    			if(ballRX - BALL_R<= 0 || ballRX + BALL_R>= GameView.VIEW_WIDTH) {
    				directionX = -directionX;
    			}
    			
    			if(ballRY - BALL_R <= boaldTop.getBoaldY() + boaldTop.getBOALD_HEIGHT() && ballRY - BALL_R >= boaldTop.getBoaldY() &&
    					ballRX + BALL_R >= boaldTop.getBoaldX() && boaldTop.getBoaldX()+ boaldTop.getBOALD_WIDTH() >= ballRX - BALL_R) {
    				
    				directionY = -directionY;		
    			}
    			
    			if(ballRY + BALL_R >= boaldDown.getBoaldY() && ballRY + BALL_R <= boaldDown.getBoaldY() + boaldDown.getBOALD_HEIGHT()&&
    					ballRX + BALL_R >= boaldDown.getBoaldX() && boaldDown.getBoaldX() + boaldDown.getBOALD_WIDTH() >= ballRX - BALL_R){
    					
    				directionY = -directionY;
    			}
    				
    			if(ballRY - BALL_R >= GameView.VIEW_HEIGHT || ballRY + - BALL_R <= 0) {
    				
    				ballstate = false;
    			}
    			
    			
    			ballRX = ballRX + directionX;
    			ballRY = ballRY + directionY;
    		}
    		
    	}
    
    }
    

    Boald类:

    public class Boald {
    	
    	//0静止 ,4左边  6右边
    	private int boaldState = 0;
    	private int boaldX;
    	private int boaldY;
    	private Color color = Color.blue;
    	private final int BOALD_WIDTH = 130;
    	private final int BOALD_HEIGHT = 20;
    	
    	public Boald(int boaldX, int boaldY) {
    		
    		this.boaldX = boaldX;
    		this.boaldY = boaldY;
    	}
    
    	public int getBoaldX() {
    		return boaldX;
    	}
    
    	public void setBoaldX(int boaldX) {
    		this.boaldX = boaldX;
    	}
    
    	public int getBoaldY() {
    		return boaldY;
    	}
    
    	public void setBoaldY(int boaldY) {
    		this.boaldY = boaldY;
    	}
    
    	public Color getColor() {
    		return color;
    	}
    
    	public void setColor(Color color) {
    		this.color = color;
    	}
    	public int getBOALD_WIDTH() {
    		return BOALD_WIDTH;
    	}
    
    	public int getBOALD_HEIGHT() {
    		return BOALD_HEIGHT;
    	}
    	
    
    	public void setBoaldState(int boaldState) {
    		this.boaldState = boaldState;
    	}
    	public void boaldMove() {
    		
    		switch(GameControl.state) {
    		
    		case 4:
    			boaldX = boaldX - 5;
    			break;
    		case 5:
    			
    			break;
    		case 6:
    			boaldX = boaldX + 5;
    			break;
    			
    		}
    	}
    
    	
    }
    

    GameView类:

    public class GameView extends Frame{
    	
    	private static final long serialVersionUID = 1L;
    	private Random random = new Random();
    	
    	public static final int VIEW_WIDTH = 600;
    	public static final int VIEW_HEIGHT = 1000;
    	//位图
    	private Image ImageBuffer = null;  
    	private Graphics GraImage = null; 
    		
    	private Boald boaldTop;
    	private Boald boaldDown;
    	private Ball ball;
    	
    	private GameRun gameRun;
    	
    	public GameView() {
    		
    		boaldTop = new Boald(0,0);
    		boaldDown = new Boald(0,0);
    		ball = new Ball(0, 0, Color.WHITE, boaldTop, boaldDown);
    		
    		boaldTop.setBoaldX(random.nextInt((int)(VIEW_WIDTH - boaldTop.getBOALD_WIDTH())));
    		boaldTop.setBoaldY(boaldTop.getBOALD_HEIGHT() * 3);
    		
    		boaldDown.setBoaldX(boaldTop.getBoaldX());
    		boaldDown.setBoaldY((int)(VIEW_HEIGHT-boaldDown.getBOALD_HEIGHT()*3));
    		
    		ball.setBallRX((int)(boaldTop.getBoaldX()+boaldTop.getBOALD_WIDTH()/2));
    		ball.setBallRY(boaldTop.getBoaldY() + boaldTop.getBOALD_HEIGHT() + ball.getBALL_R() + 5);
    		
    		gameRun = new GameRun(this, boaldTop, boaldDown, ball);
    		gameRun.start();
    	}
    
    	public static void main(String[] args) {
    		
    		new GameView().init();
    	}
    	
    	public void init() {
    		
    		this.setTitle("弹球游戏");
    		this.setSize(VIEW_WIDTH, VIEW_HEIGHT);
    		this.setBackground(Color.BLACK);
    		this.addKeyListener(new GameControl());
    		this.addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent we) {
    				
    				System.exit(0);
    			}
    		});
    		this.setVisible(true);
    	}
    	//画图
    	public void paint(Graphics g) {
    		g.setColor(ball.getBALL_COLOR());
    		g.fillOval(ball.getBallRX() - ball.getBALL_R(), ball.getBallRY() - ball.getBALL_R(), ball.getBALL_R() * 2, ball.getBALL_R() * 2);
    		g.setColor(boaldTop.getColor());
    		g.fillRect(boaldTop.getBoaldX(), boaldTop.getBoaldY(), boaldTop.getBOALD_WIDTH(), boaldTop.getBOALD_HEIGHT());
    		g.setColor(boaldDown.getColor());
    		g.fillRect(boaldDown.getBoaldX(), boaldDown.getBoaldY(), boaldDown.getBOALD_WIDTH(), boaldDown.getBOALD_HEIGHT());
    	
    		if(Ball.ballstate == false) {
    			g.setFont(new Font("隶书",Font.BOLD,40));
    			g.drawString("游戏结束", 210, 500);
    		}
    		
    	}
    	public void update(Graphics g) {
    		
    		 //创建图形缓冲区  
    		 ImageBuffer = createImage(this.getWidth(), this.getHeight());   
    		 //获取图形缓冲区的图形上下文  
    		 GraImage = ImageBuffer.getGraphics();    
    		 //用paint方法中编写的绘图过程对图形缓冲区绘图  
    		 paint(GraImage);     
    	     //释放图形上下文资源  
    		 GraImage.dispose();     
    		 //将图形缓冲区绘制到屏幕上  
    		 g.drawImage(ImageBuffer, 0, 0, this);  
    		
    	}
    
    }
    

    GameRun类:

    public class GameRun extends Thread{
    	
    	private int sleepTime = 3;
    	private GameView gameView;
    	private Boald boaldTop;
    	private Boald boaldDown;
    	private Ball ball;
    	
    	public GameRun(GameView gameView, Boald boaldTop,Boald boaldDown, Ball ball) {
    		
    		this.gameView = gameView;
    		this.boaldTop = boaldTop;
    		this.boaldDown = boaldDown;
    		this.ball = ball;
    	}
    	
    	public void run() {
    		
    		while(true) {
    			
    			if(Ball.ballstate) {
    				
    				gameView.repaint();
    				boaldTop.boaldMove();
    				boaldDown.boaldMove();
    				ball.ballMove();
    				
    				try {
    					Thread.sleep(sleepTime);
    				} catch (InterruptedException e) {
    					
    					e.printStackTrace();
    				}
    				
    			}
    			
    			
    		}
    	}
    
    }
    

    GameControl类:

    public class GameControl implements KeyListener{
    	
    	public static int state = 5;
    	
    	@Override
    	public void keyTyped(KeyEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void keyPressed(KeyEvent e) {
    		
    		switch(e.getKeyCode()) {
    		
    		case KeyEvent.VK_LEFT:
    			state = 4;
    			break;
    		case KeyEvent.VK_RIGHT:
    			state = 6;
    			break;
    			
    		default:
    			
    			break;
    		}
    		
    	}
    
    	@Override
    	public void keyReleased(KeyEvent e) {
    		
    		state = 5;
    	}
    	
    	
    
    }
    

    这个游戏还有一些边界处理的问题没有解决。勿喷!

    展开全文
  • Python弹球游戏

    2021-08-19 12:34:35
    游戏弹球 今天小编要教大家弹球游戏 开始工作 import tkinter as tk # 游戏对象的一些通用方法 class GameObject(object): def __init__(self, canvas, item): self.canvas = canvas self.item = ...
  • python弹球游戏

    千次阅读 2017-05-13 09:06:02
    python弹球游戏写了一个由小球和球拍构成的小游戏,小球在画布内随机运动,碰到非底部边框与球拍进行反弹,碰到底部game over!win10 64bit python 3.6.0版本1.首先,让我们先产生一个画布from tkinter import * #...
  • java弹球游戏

    2021-08-17 17:50:45
    package CaiDan; import org.omg.CORBA.PRIVATE_MEMBER; import java.awt.*;... Frame f = new Frame("弹球游戏"); //设置常量 //设置桌面的宽度和高度 private final int TABLE_WIDTH = 300; .
  • AWT编程弹球游戏

    2013-03-23 11:46:27
    AWT编程,使用graphics绘图实现弹球游戏。源码下载。
  • 本文实例讲述了Python实现的弹球游戏。分享给大家供大家参考,具体如下: 弹球 1. Ball draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle draw负责移动Paddle 碰撞检测,确定能不能继续 监听键盘...
  • 弹球游戏源代码

    2012-03-15 21:35:04
    用HGE开发的一个弹球游戏,基本游戏架构已经完整,但是具体细节没有完善,基本的弹球游戏的技术点都在里面,可能仅仅只能供一些初学者参考而已,因为毕竟这是我第一次用C++的来写游戏
  • PAGE 7 第五课 弹球游戏 本章目标 使用图像精灵组件和画布组件实现简单动画类游戏 列表列表选择框对话框组件的应用 反弹处理与碰撞处理 经常备份 弹球游戏 - 案例展示 展示与分析 (a)开始界面 (b)横板接住小球 弹球...
  • java 线程弹球游戏

    2015-06-03 19:40:16
    最近java学到线程,于是做了一个线程弹球的小游戏,不过还没完善 这里是提纲 1.线程弹球游戏实现 1.实现界面需要使用哪些API JFrame JPanel JButton FlowLayout Graphics2D Thread ...
  • 弹球游戏 有砖块 挡板 弹球 礼物 C#作业 当时我也找了很久啊 需要的童鞋欢迎下载
  • 首先,我们来看最后的效果图:代码如下:# -*- coding: utf-8 -*-from Tkinter import *import randomimport timeimport winsoundover_sound = 'over.wav'#小球的class Ball:def __init__(self,canvas,paddle,...
  • 弹球游戏:from tkinter import *import timeimport randomtk=Tk() #创建一个界面tk.title("弹球游戏")canvas=Canvas(tk,width=800,height=600,bg="skyblue",bd=0,highlightthickness = 0)tk.resizable(0,0) #表示...
  • python小游戏开发——简单弹球游戏

    万次阅读 多人点赞 2019-04-25 11:09:28
    玩家通过控制键盘的左、右方向键来控制弹板的移动,弹球和弹板撞击一次,得一分,当弹球触底时,本局游戏结束。玩家一共有四条生命,即可以玩四次游戏,当生命大于等于“ 0 ”时,可以继续游戏,当生命小于“ 0 ”时...
  • GUI实现弹球游戏 先看一下游戏效果图。 一个简单的Demo。也比较简单,新手试着做一做完善改进。 源代码 import Com.Style.FontStyle; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** ...
  • python制作弹球游戏

    2021-08-15 14:36:42
    弹球 1.Ball draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.paddle draw负责移动paddle 碰撞检测,确定能不能继续 监听键盘事件 3.主循环 绘制Ball和Paddle update sleep 代码图 调试 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,497
精华内容 598
关键字:

弹球类游戏