html5泡泡龙游戏开发随笔

本文记录了一次使用HTML5 canvas和PIXI.JS游戏引擎开发泡泡龙游戏的过程,涉及发射小球的碰撞检测、碰撞后的力反馈、消除逻辑以及边界处理等关键点。在碰撞检测中,通过圆心距离判断实现,消除逻辑通过递归检查相邻小球颜色。同时,游戏还实现了发射球辅助线的边界反射效果。
摘要由CSDN通过智能技术生成

由于刚刚入职,上一款游戏开发已经进入尾声,所以在下一款游戏到来之前的一段时间,做了一个泡泡龙的游戏。在做这款小游戏时候,发现里面的逻辑还是挺多的,所以在此记录一下开发过程中比较重要的点。
用到的技术,html5 canvas PIXI.JS游戏引擎,js开发
1. 发射小球与上方球的碰撞检测处理。
方法:
① 发射球开始运动时,让其与每一个上方的小球进行圆心距离判断,当距离为2个半径时,那么我们认为发生碰撞,让他停止运动。
② 停止了不代表真的可以停止。因为我们要确保每一个小球周围的位置都是固定的,所以我们要对停止的小球进行位置调整。
用一个函数来获取碰撞时,与发射球碰撞小球周围的6个位置坐标,判断发射球的坐标与那6个坐标距离,哪个距离近,我们就把小球移动到最近的那个坐标位置。

  1. 发生碰撞时,要给一个力,让被撞到或者间接撞到的球有一个弹动
    方法:
    递归两次,确保发射球碰到的球,以及这个被碰到的球的周围的球,发生相应弹动。弹动方向就是发射球与这个球的延长线上

  2. 碰撞成功之后,我们需要判断是否消除的问题
    方法:
    小球对象设置一个属性canPop,属性默认设置为false。这时我们要递归这个发射球,如果这个发射球周围6个位置有和他相同的颜色,那么把这个小球标记为canPop,同时递归这个球。(切记被递归过得不能再递归),最后遍历所有小球,如果canPop为true >=3,那么消除这几个球。

4.消除之后,还有判断是否处于未连接状态的小球

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
泡泡龙是一款非常经典的游戏,也是很多Python初学者喜欢尝试编写的一个小游戏。下面是一个简单的Python泡泡龙游戏代码示例: ``` import pygame from random import randrange as rnd # 初始化pygame pygame.init() # 定义一些常量 WIDTH, HEIGHT = 800, 600 FPS = 50 # 创建游戏窗口 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Bubble Shooter") # 加载图片 bg = pygame.image.load("background.jpg") bubble_img = pygame.image.load("bubble.png") # 设置字体 font = pygame.font.SysFont("Arial", 36) # 定义颜色常量 BLACK = (0, 0, 0) WHITE = (255, 255, 255) # 定义泡泡类 class Bubble: def __init__(self, x, y, color): self.x = x self.y = y self.color = color def draw(self): screen.blit(bubble_img, (self.x, self.y)) def move(self): self.y -= 5 # 定义一些变量 bubbles = [] score = 0 # 添加泡泡函数 def add_bubbles(): for i in range(5): x = rnd(100, WIDTH-100) y = rnd(100, HEIGHT-100) color = (rnd(0, 255), rnd(0, 255), rnd(0, 255)) bubble = Bubble(x, y, color) bubbles.append(bubble) # 游戏循环 running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: add_bubbles() # 绘制背景 screen.blit(bg, (0, 0)) # 绘制泡泡并移动 for bubble in bubbles: bubble.draw() bubble.move() # 绘制得分 score_text = font.render("Score: " + str(score), True, WHITE) screen.blit(score_text, (20, 20)) # 更新屏幕 pygame.display.update() # 设置帧率 pygame.time.Clock().tick(FPS) # 退出pygame pygame.quit() ``` 这个泡泡龙游戏代码示例使用了Python的pygame库来实现游戏窗口、图片加载、事件处理等功能,通过添加Bubble类来实现泡泡的绘制和移动,并在游戏循环中不断调用add_bubbles()函数来添加新的泡泡。同时,在游戏循环中也绘制了得分,并在按下空格键时调用add_bubbles()函数来添加新的泡泡。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值