碰到边缘就反弹的金币收集游戏,译者:lixingqiu
"""
碰到边缘就反弹的金币收集游戏,译者:lixingqiu,这是用Arcade街机模块制作的一个游戏示例。
演示了如何实例化角色,实例化角色列表,类的继承,角色的移动等。当前最新版本是2.0.0b4。
安装方法:pip install arcade==2.0.0b4 (2019/2/27),注释翻译:www.lixingqiu.com
arcade模块是由Paul Vincent Craven开发并维护,专业用来开发街机游戏。"""import random
import arcade
import os# 常量定义
SPRITE_SCALING_PLAYER = 0.5
SPRITE_SCALING_COIN = 0.2
COIN_COUNT = 50SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
SCREEN_TITLE = "碰到边缘就反弹的金币收集游戏,译者:lixingqiu"class Coin(arcade.Sprite):def __init__(self, filename, sprite_scaling):super().__init__(filename, sprite_scaling)self.change_x = 0self.change_y = 0def update(self):# 移动金币self.center_x += self.change_xself.center_y += self.change_y# 碰到边缘就反弹if self.left < 0:self.change_x *= -1if self.right > SCREEN_WIDTH:self.change_x *= -1if self.bottom < 0:self.change_y *= -1if self.top > SCREEN_HEIGHT:self.change_y *= -1class MyGame(arcade.Window):""" 继承自Window类的MyGame类"""def __init__(self):""" 初始化器 """# 调用父类的初始化器super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)# 所有角色列表定义self.all_sprites_list = Noneself.coin_list = None# 定义玩家角色相关变量self.player_sprite = Noneself.score = 0# 隐藏鼠标self.set_mouse_visible(False)arcade.set_background_color(arcade.color.AMAZON)def setup(self):""" 设置游戏 """# 实例化角色列表self.all_sprites_list = arcade.SpriteList()self.coin_list = arcade.SpriteList()# 得分self.score = 0# 玩家角色实例化self.player_sprite = arcade.Sprite("images/character.png", SPRITE_SCALING_PLAYER)self.player_sprite.center_x = 50self.player_sprite.center_y = 50self.all_sprites_list.append(self.player_sprite)# 实例化一些金币for i in range(50):# 创建金币对象coin = Coin("images/coin_01.png", SPRITE_SCALING_COIN)# 随机设定坐标coin.center_x = random.randrange(SCREEN_WIDTH)coin.center_y = random.randrange(SCREEN_HEIGHT)coin.change_x = random.randrange(-3, 4)coin.change_y = random.randrange(-3, 4)# 增加到所有角色列表self.all_sprites_list.append(coin)self.coin_list.append(coin)def on_draw(self):""" 重画方法 """arcade.start_render()self.all_sprites_list.draw()# 放得分文本output = f"Score: {self.score}"arcade.draw_text(output, 10, 20, arcade.color.WHITE, 14)def on_mouse_motion(self, x, y, dx, dy):""" 处理鼠标移动 """# Move the center of the player sprite to match the mouse x, yself.player_sprite.center_x = xself.player_sprite.center_y = ydef update(self, delta_time):""" 游戏逻辑更新 """# 所有角色更新self.all_sprites_list.update()# 玩家所操作角色和金币的碰撞检测hit_list = arcade.check_for_collision_with_list(self.player_sprite,self.coin_list)# 碰到的金币被删除并加分for coin in hit_list:coin.kill()self.score += 1def main():window = MyGame()window.setup()arcade.run()if __name__ == "__main__":main()
碰到边缘就反弹的金币收集游戏,译者:lixingqiu相关推荐
- 【Scratch-动作模块】碰到边缘就反弹和翻转方式
指令解释 碰到边缘就反弹 旋转方式设为:分为左右翻转.不可旋转.任意旋转(默认旋转方式)三种 对应效果 对应效果 对应效果 视频演示 「零基础学习Scratch3.0」26运动模块碰到边缘和翻转积木 ...
- 第二章 第六课 Scratch作品:摇摇晃晃的虫子(随机数和碰到边缘就反弹)
同学们,今天我们学习随机数,并且复习循环和碰到边缘就反弹. 知识点总结: 1. Scratch中有三种类型循环:重复执行是其中的一种. 重复执行,表示一直执行下去. 2. 碰到边缘就反弹,表示角色会在 ...
- java 滚动小球_Java语言编写一个程序:在面板中多个小球浮动,碰到边缘则反弹,小球和小球想撞得话,其中一个就消失...
编写一个窗体的类BallFrameDemo: package com.lzy.ball; import javax.swing.JFrame; public class BallFrameDemo e ...
- unity小球吃金币小游戏
链接放在这里 unity小球吃金币小游戏-Unity3D文档类资源-CSDN下载这是我在学完虚拟现实技术这门课程后利用unity所做的小球吃金币小游戏,里面有源码和作品源文件,用u更多下载资源.学习资 ...
- Unity3d小球碰到墙壁之后反弹
Unity物理反弹时的反弹系数:也就是Physic Material 的Bounciness属性 给小球的Collider添加Material属性就好啦 1.小球首先要有碰撞盒 2.创建一个Physi ...
- 无聊的时候怎么办?教你用java写一个简单挂机打金币小游戏吧!
无聊的时候怎么办?教你用java写一个超简单挂机打金币小游戏吧! Java写一个挂机打金币程序 1.Java的面向对象 2.基础打金的分析 3. Robot介绍以及Demo演示 4.挂机打金程序如何去 ...
- Unity 数字跳动增长,金币收集路径动画
一.想实现一个金币按照曲线运动到目标位置的动画,同时运动的过程中需要有金币收集的数字增长动画 二.思路 贝塞尔曲线计算路径,Dotween 进行路径动画 数字增长动画用dotween做 微信公众号:
- H5实现点击获取金币小游戏以及大富翁
最近做了一个比较不错的点击获取金币小游戏,这里分享给大家 主要实现方式是通过hilojs实现的 以下为官方文档的地址 官方文档 第一步:安装插件 npm i hilojs或者yarn add hilo ...
- 黑马Qt翻金币小游戏——拓展到100关
目录 前言: 一.拓展--增加到100功能实现: 二.拓展--下一关实功能现 三.最后分享ChooseWindow.h.ChooseWindow.cpp和PlayWindow.h.PlayWindow ...
最新文章
- 大厂架构都开始做机房多活了
- Android之相对布局
- 【机器学习】搞懂机器学习的常用评价指标!
- Android期末考试题
- 决策树原理详解及python代码实现
- windows远程连接ubuntu 黑屏_Windows跟Windows远程连接传输文件
- php中时间轴,PHP时间轴函数
- 小程序沉浸式_企业开发小程序:客户裂变式增长
- 【SQLSERVER】SQL SERVER 2008筛选表报错
- 第九节:委托和事件(1)(委托的发展历史、插件式编程、多播委托)
- 利用反射过滤对象的null值
- java实现单词或字符串反转
- mysql在缺省状态下_MYSQL面试题
- c#通过RFC调用SAP接口程序之输入输出参数案例
- AI技术如何做工程?
- C#使用DevExpress中的chartcontrol
- 如何编译运行opencv的sample
- 收款码三合一制作生成系统源码
- windows 8.1 关机
- 常用的端口号有哪些?