用CocosCreator来做一个黄金矿工吧(一)

近开始学习使用CocosCreator,苦于不知道做点什么好,突然想起当年4399最火的游戏:黄金矿工,就像不如来做一个吧,练练手

先导入我给素材,打开新建好的项目,创建一下文件夹

在这里插入图片描述

Ctrl+S 保存场景,取名main
在这里插入图片描述

找到这个图,拖入场景里

在这里插入图片描述

为了让背景铺满窗口,为背景添加UI=>Widget组件,如图设置

在这里插入图片描述

在Atlas文件夹下找齐各种素材,搭建出这个样子的场景

在这里插入图片描述

UI部分后面再说,先来实现绳索和钩子

在这里插入图片描述
这一部分是这样的层级结构,我会一步步讲解

在这里插入图片描述

绳子的实现
在mineCar节点下,右键 创建节点=》渲染节点=》单色,得到一个白色的矩形块
如图调整颜色、锚点和size

在这里插入图片描述

锚点的Y轴设置成1,绳子才会以这个点为旋转中心

在这里插入图片描述

在Scripts文件夹下新建文件Hook.ts,开始编写绳子旋转的代码
Hook.ts

//先定义2个变量
isRotating: boolean = true; //绳子是否旋转中
rotateSpeed: number = 60; //旋转速度

//旋转代码
rotateHook(deltaTime) {
    if (!this.isRotating) {
        return;
    }
    //这里角度可以自己修改,不一定非要60度
    if (this.node.angle >= 60) {
        this.rotateSpeed = -this.rotateSpeed;
    } else if (this.node.angle <= -60) {
        this.rotateSpeed = Math.abs(this.rotateSpeed);
    }
    //速度是60*deltaTime的意义是,每秒钟旋转60
    this.node.angle += this.rotateSpeed * deltaTime;
}

放入update里

update(deltaTime) {
    this.rotateHook(deltaTime)
}

点击运行按钮
在这里插入图片描述

你会看到,绳子已经开始来回转起来了
在这里插入图片描述

素材链接
https://gitee.com/ghjkg546/textures
安装git后 git clone 链接即可
不要拿去商用,我不知道会不会有版权为问题,自己学习娱乐即可

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些思路和建议。 首先,您需要安装pygame这个Python库,它是用于创建游戏的工具包。然后,您可以开始编写您的黄金矿工游戏游戏的主要流程是这样的:玩家控制一个矿工,通过挖掘地下的矿石和宝石,来获取分数。在游戏过程中,玩家需要避开一些障碍物,比如炸药和毒药,否则就会损失生命值。 为了实现这个游戏,您需要创建几个元素,包括矿工、矿石和宝石、障碍物等。然后,您需要编写一些逻辑代码,比如:玩家使用方向键控制矿工的移动,矿工挖矿和收集宝石的动作,障碍物的生成和移动等。 下面是一个简单的代码示例,可以帮助您开始编写您的黄金矿工游戏: ```python import pygame import random # 初始化pygame pygame.init() # 设置游戏窗口 width = 800 height = 600 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("Gold Miner") # 加载游戏图片 miner_image = pygame.image.load("miner.png") stone_image = pygame.image.load("stone.png") gem_image = pygame.image.load("gem.png") bomb_image = pygame.image.load("bomb.png") poison_image = pygame.image.load("poison.png") # 设置游戏元素的大小和位置 miner_rect = miner_image.get_rect() miner_rect.centerx = width // 2 miner_rect.bottom = height - 10 stone_rect = stone_image.get_rect() stone_rect.centerx = random.randint(50, width - 50) stone_rect.centery = random.randint(50, height - 200) gem_rect = gem_image.get_rect() gem_rect.centerx = random.randint(50, width - 50) gem_rect.centery = random.randint(50, height - 200) bomb_rect = bomb_image.get_rect() bomb_rect.centerx = random.randint(50, width - 50) bomb_rect.centery = random.randint(50, height - 200) poison_rect = poison_image.get_rect() poison_rect.centerx = random.randint(50, width - 50) poison_rect.centery = random.randint(50, height - 200) # 设置游戏元素的移动速度 stone_speed = 5 gem_speed = 3 bomb_speed = 4 poison_speed = 3 # 设置游戏分数和生命值 score = 0 life = 3 # 设置游戏字体 font = pygame.font.Font(None, 36) # 游戏主循环 while True: # 事件处理 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: miner_rect.move_ip(-10, 0) elif event.key == pygame.K_RIGHT: miner_rect.move_ip(10, 0) # 更新游戏元素的位置 stone_rect.move_ip(0, stone_speed) gem_rect.move_ip(0, gem_speed) bomb_rect.move_ip(0, bomb_speed) poison_rect.move_ip(0, poison_speed) # 判断矿工是否碰到了矿石或宝石 if miner_rect.colliderect(stone_rect): score += 10 stone_rect.centerx = random.randint(50, width - 50) stone_rect.centery = random.randint(50, height - 200) elif miner_rect.colliderect(gem_rect): score += 50 gem_rect.centerx = random.randint(50, width - 50) gem_rect.centery = random.randint(50, height - 200) # 判断矿工是否碰到了障碍物 if miner_rect.colliderect(bomb_rect): life -= 1 bomb_rect.centerx = random.randint(50, width - 50) bomb_rect.centery = random.randint(50, height - 200) elif miner_rect.colliderect(poison_rect): life -= 1 poison_rect.centerx = random.randint(50, width - 50) poison_rect.centery = random.randint(50, height - 200) # 绘制游戏元素和分数和生命值 screen.fill((255, 255, 255)) screen.blit(miner_image, miner_rect) screen.blit(stone_image, stone_rect) screen.blit(gem_image, gem_rect) screen.blit(bomb_image, bomb_rect) screen.blit(poison_image, poison_rect) score_text = font.render("Score: {}".format(score), True, (0, 0, 0)) screen.blit(score_text, (10, 10)) life_text = font.render("Life: {}".format(life), True, (0, 0, 0)) screen.blit(life_text, (width - 80, 10)) # 判断游戏是否结束 if life <= 0: gameover_text = font.render("Game Over", True, (255, 0, 0)) screen.blit(gameover_text, (width // 2 - 60, height // 2 - 20)) pygame.display.update() pygame.time.delay(3000) pygame.quit() exit() # 更新游戏画面 pygame.display.update() ``` 代码中的图片文件需要您自己准备,并且需要放在与代码文件相同的目录下。您可以根据您自己的需要,对代码进行修改和扩展,来创建您自己的黄金矿工游戏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值