小学生python游戏编程arcade----敌人精灵上方显示方框及子弹显示问题
2023-09-11 14:20:48 时间
小学生python游戏编程arcade----敌人精灵上方显示方框及子弹显示问题
前言
接上篇文章继续解绍arcade游戏编程的基本知识。敌人精灵上方显示方框及子弹显示问题
1、敌人精灵上方显示方框
1.1 修改enemy_tank类
def draw_word(self, x, y, owner,fcolor=arcade.csscolor.GREEN, fsize=18, text=None):
color1 = (128, 138, 135)
# 参数:距形中心位置,宽,高,颜色,线宽
rect = arcade.create_rectangle(x, y, 200, 60, color1)
owner.append(rect)
if text:
arcade.draw_text(text, x, y, fcolor, fsize)
else:
arcade.draw_text(self.word, x, y, fcolor, fsize)
1.2 引用
self.shapes.draw()
for aa in self.scene[LAYER_tanks]:
aa.draw_word(aa.left, aa.top + 20, self.shapes)
1.3 效果图
2、调整方法
2.1 类方法
def draw_word(self, x, y, fcolor=arcade.csscolor.GREEN, fsize=18, text=None):
xs=fsize
if text:
arcade.draw_rectangle_filled(x+len(self.word)*xs//2-10,y+5,len(text)*xs,30,(128,138,135))
arcade.draw_text(text, x, y, fcolor, fsize)
else:
arcade.draw_rectangle_filled(x+len(self.word)*xs//2-10,y+5,len(self.word)*xs, 30,(128,138,135))
arcade.draw_text(self.word, x, y, fcolor, fsize)
2.2 类的引用
for aa in self.scene[LAYER_tanks]:
aa.draw_word(aa.left, aa.top + 20)
2.3 效果图
2.4 大小位置调整后
3、子弹过线自动消失
3.1 子弹的更新中
# 如过子弹超过屏幕则删掉.
if (bullet.right < 0) or (bullet.bottom > SCREEN_height) or (
bullet.left > (self.tile_map.width * self.tile_map.tile_width) * TILE_Scaling) :
bullet.remove_from_sprite_lists()
3.2 原因查到,把以下代码调为如下
# 如过子弹超过地图则删掉.
if (bullet.right < 0) or (bullet.bottom > self.top_of_map) or (
bullet.left > self.end_of_map):
bullet.remove_from_sprite_lists()
3.3 效果图
3.3 重要提示
所有物品的坐标位置与相机移动无关
定义个相机左及下边距,鼠标点击时的位置需与此两值相加
# 定义一个相机边框的左边距离
left_boundary = self.view_left + (self.camera.viewport_width / 2)
if self.wanjia.center_x < left_boundary:
self.view_left -= left_boundary - self.wanjia.center_x
else:
self.view_left += self.wanjia.center_x - left_boundary
top_boundary = self.view_bottom + (self.camera.viewport_height / 2)
if self.wanjia.center_y < top_boundary:
self.view_bottom -= top_boundary - self.wanjia.center_y
else:
self.view_bottom += self.wanjia.center_y - top_boundary
源码获取
可关注博主后,私聊博主免费获取
需要技术指导,育娃新思考,企业软件合作等更多服务请联系博主
今天是以此模板持续更新此育儿专栏的第 30/50次。
可以关注我,点赞我、评论我、收藏我啦。
相关文章
- python-面向对象基础
- python应用-craps赌博游戏
- python:ERROR: No matching distribution found for Pillow==9.1.0的处理(Python 3.6.8)
- 【Python五篇慢慢弹】数据结构看python
- 如何编写一个python项目
- python 图形界面“诈金花”游戏,更新了!附完整代码
- 华为OD机试 - 九宫格(Java & JS & Python)
- Python编程:利用python编程实现对基于时间序列的数据(dataframe格式)按照指定时间范围进行单方向关联,不存在的日期补充为默认的NaN
- Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
- Python:更改默认启动的python程序及其对应的安装包路径(更改pip的默认安装包的路径)图文教程之详细攻略
- Python之matplotlib:基于matplotlib库利用python语言实现一张画布显示多张图的多种方法
- Python语言学习:Python语言学习之python包/库package的简介(模块的封装/模块路径搜索/模块导入方法/自定义导入模块实现华氏-摄氏温度转换案例应用)、使用方法、管理工具之详细攻略
- Python:python语言中与时间有关的库函数简介、安装、使用方法(获取当前时间/计算程序块前后运行时间/模型训练时间或耗费时间)之详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
- Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略
- Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略
- python --> Python初阶 --> 基础语法 --> 条件和分支
- Python可视化数据分析01、python环境搭建
- 已解决2. Set PROTOCOL_BUPFERS_PYTHON_iMPLEMENTATION=python (but this will use pure-Python parsing and w
- 童年的游戏,Python一行代码就能玩
- 世界顶级整理!137页Python学习笔记,全面总结看这一篇就够了
- 【华为机试真题 Python实现】消消乐游戏【2022 Q1 Q2 | 100分】
- Python编程:shelve模块-持久化python数据
- Python编程:twine模块打包python项目上传pypi
- Python编程:pyenv管理多个python版本环境
- python IDLE 背景修改 IDLE (Python GUI)
- python里并发执行协程时部分阻塞超时怎么办