小学生python游戏编程arcade----基本知识3

  • 前言
  • 多摄象头显得分,title地图加载,精灵分层管理,移动精灵
    • 1、多摄象头显得分
      • 1.1得分
      • 1.2 两个摄象机的绘制
      • 1.3 效果图
      • 1.4 代码实现
    • 2、title地图加载
      • 2.1地图编辑器及资源
      • 2.2 加载地图,可以直接从地图创建场景,还有精灵列表,很方便
      • 2.3 效果图
      • 2.4 代码实现
    • 3、精灵分层管理
      • 3.1 多层地图的实现
      • 3.2 关健点,角色可选择插入到某层前或后
      • 3.3 效果图
      • 3.4 代码实现
  • 源码获取

前言

接上篇文章小学生python游戏编程arcade----基本知识1、2,连接如下:小学生python游戏编程arcade----基本知识,小学生python游戏编程arcade----基本知识2
继续解绍arcade游戏编程的基本知识。

多摄象头显得分,title地图加载,精灵分层管理,移动精灵

1、多摄象头显得分

1.1得分

可以收集硬币并获得积分,我们需要一种在屏幕上显示分数的方法。
这个过程比仅仅在X和Y位置绘制一些文本要复杂一些。为了正确绘制文本或任何图形用户界面元素,我们需要使用与绘制场景其余部分所用的相机不同的相机。
这是因为我们在主游戏摄像头上滚动,它随角色移动而移动,但我们希望我们的图形用户界面元素保持不变。使用第二个摄像头可以让我们做到这一点。
初始化
self.camera = None # 摄象机 第一个
self.gui_camera = None # 第二摄象机
setup中:
def setup(self):
# 摄象机
self.camera = arcade.Camera(self.width, self.height)
self.gui_camera = arcade.Camera(self.width, self.height)

1.2 两个摄象机的绘制

draw() 中
def on_draw(self):
self.clear()
self.scene.draw()
self.camera.use() # 摄象机

    **self.gui_camera.use()**# Draw our score on the screen, scrolling it with the viewportscore_text = f"得分: {self.score}"arcade.draw_text(score_text,10,500,arcade.csscolor.RED,18,)

1.3 效果图

1.4 代码实现

# _*_ coding: UTF-8 _*_
# 开发团队: 信息化未来
# 开发人员: Administrator
# 开发时间:2022/11/4 16:59
# 文件名称: game1.py
# 开发工具: PyCharm
import arcade# 设置
SCREEN_WIDTH = 1000
SCREEN_HEIGHT = 650
SCREEN_TITLE = "我的游戏"# 常量用于从原始大小缩放精灵
CHARACTER_SCALING = 1
TILE_SCALING = 0.5
PLAYER_MOVEMENT_SPEED = 2.5
# 重力
GRAVITY = 1
PLAYER_JUMP_SPEED = 20class MyGame(arcade.Window):def __init__(self):# 初始化窗体super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)self.scene = Noneself.player_sprite = Nonearcade.set_background_color(arcade.csscolor.BLUE)self.physics_engine = Noneself.camera = None  # 摄象机self.gui_camera = None  # 第二摄象机self.score = 0# 加载声音self.collect_coin_sound = arcade.load_sound("sounds/coin2.wav")self.jump_sound = arcade.load_sound("sounds/s3.wav")def setup(self):# 摄象机self.camera = arcade.Camera(self.width, self.height)self.gui_camera = arcade.Camera(self.width, self.height)# 初始化场景self.scene = arcade.Scene()# 添加精灵列表self.scene.add_sprite_list("Player")self.scene.add_sprite_list("Walls", use_spatial_hash=True)# 添加角色.image_source = "images/1-1.png"self.player_sprite = arcade.Sprite(image_source, CHARACTER_SCALING)self.player_sprite.center_x = 264self.player_sprite.center_y = 128self.scene.add_sprite("Player", self.player_sprite)wall = arcade.Sprite("images/房子.png", TILE_SCALING)wall.center_x = SCREEN_WIDTH /2wall.center_y = SCREEN_HEIGHT /2+200self.scene.add_sprite("Walls", wall)for x in range(0, 1250, 64):wall = arcade.Sprite(":resources:images/tiles/grassMid.png", TILE_SCALING)wall.center_x = xwall.center_y = 32self.scene.add_sprite("Walls", wall)for x in range(128, 1250, 125):coin = arcade.Sprite(":resources:images/items/coinGold.png", 0.5)coin.center_x =xcoin.center_y = 96self.scene.add_sprite("Coins", coin)# 物理引擎# self.physics_engine = arcade.PhysicsEngineSimple(#     self.player_sprite, self.scene.get_sprite_list("Walls"))self.physics_engine = arcade.PhysicsEnginePlatformer(self.player_sprite, gravity_constant=GRAVITY, walls=self.scene["Walls"])def on_draw(self):self.clear()self.scene.draw()self.camera.use()  # 摄象机self.gui_camera.use()# Draw our score on the screen, scrolling it with the viewportscore_text = f"得分: {self.score}"arcade.draw_text(score_text,10,500,arcade.csscolor.RED,18,)def on_key_press(self, key, modifiers):"""每当按下键时调用."""if key == arcade.key.UP or key == arcade.key.W:if self.physics_engine.can_jump():self.player_sprite.change_y = PLAYER_JUMP_SPEEDarcade.play_sound(self.jump_sound)elif key == arcade.key.LEFT or key == arcade.key.A:self.player_sprite.change_x = -PLAYER_MOVEMENT_SPEEDelif key == arcade.key.RIGHT or key == arcade.key.D:self.player_sprite.change_x = PLAYER_MOVEMENT_SPEEDdef on_key_release(self, key, modifiers):"""Called when the user releases a key."""if key == arcade.key.LEFT or key == arcade.key.A:self.player_sprite.change_x = 0elif key == arcade.key.RIGHT or key == arcade.key.D:self.player_sprite.change_x = 0def center_camera_to_player(self):screen_center_x = self.player_sprite.center_x - (self.camera.viewport_width / 2)screen_center_y = self.player_sprite.center_y - (self.camera.viewport_height / 2)# Don't let camera travel past 0if screen_center_x < 0:screen_center_x = 0if screen_center_y < 0:screen_center_y = 0player_centered = screen_center_x, screen_center_yself.camera.move_to(player_centered)def on_update(self, delta_time):"""运动和游戏逻辑"""# 检测磁到的金币coin_hit_list = arcade.check_for_collision_with_list(self.player_sprite, self.scene["Coins"])# 删除金币for coin in coin_hit_list:coin.remove_from_sprite_lists()  # 删除金币arcade.play_sound(self.collect_coin_sound)self.score += 1self.physics_engine.update()  # 运用引擎移动角色self.center_camera_to_player()   # 摄象机def main():"""主程序"""window = MyGame()window.setup()arcade.run()if __name__ == "__main__":main()

2、title地图加载

2.1地图编辑器及资源

地图编辑器来构建地图,然后将其加载到 Mapfile 中,而不是使用特定点通过代码放置瓷砖。
要开始,请下载并安装 Tiled Map Editor 。(考虑一下捐赠,因为这是一个免费提供的很棒的项目。)
在https://doc.mapeditor.org/,上已经有很好的文档可用,假设您已经熟悉如何使用Tabled创建地图。如果不是,您可以查看平铺文档并返回到此处。
后以文章都将使用这种tile地图。如果您还不想创建自己的,Arade附带了几个示例 resources 文件夹,所以如果您不想创建自己的地图,可以使用resoures方件夹下的资源

2.2 加载地图,可以直接从地图创建场景,还有精灵列表,很方便

    # 初始化场景# self.scene = arcade.Scene()#map_name = "地图/家1.json"# 层属性layer_options = {"Platforms": {"use_spatial_hash": True,},}# 读地图文件self.tile_map = arcade.load_tilemap(map_name, TILE_SCALING, layer_options)# 使用我们的TileMap初始化场景,这将自动添加所有层,以正确的顺序在场景中显示为SpriteList。self.scene = arcade.Scene.from_tilemap(self.tile_map)

2.3 效果图


相机随角色移动:

2.4 代码实现

# _*_ coding: UTF-8 _*_
# 开发团队: 信息化未来
# 开发人员: Administrator
# 开发时间:2022/11/4 16:59
# 文件名称: game1.py
# 开发工具: PyCharm
import arcade# 设置
SCREEN_WIDTH = 1000
SCREEN_HEIGHT = 650
SCREEN_TITLE = "我的游戏"# 常量用于从原始大小缩放精灵
CHARACTER_SCALING = 1
TILE_SCALING = 1
PLAYER_MOVEMENT_SPEED = 2.5
# 重力
GRAVITY = 1
PLAYER_JUMP_SPEED = 20class MyGame(arcade.Window):def __init__(self):# 初始化窗体super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)self.scene = Noneself.player_sprite = Nonearcade.set_background_color(arcade.csscolor.BLUE)self.physics_engine = Noneself.camera = None  # 摄象机self.gui_camera = None  # 第二摄象机self.score = 0# 加载声音self.collect_coin_sound = arcade.load_sound("sounds/coin2.wav")self.jump_sound = arcade.load_sound("sounds/s3.wav")# 设置地图self.tile_map = Nonedef setup(self):# 摄象机self.camera = arcade.Camera(self.width, self.height)self.gui_camera = arcade.Camera(self.width, self.height)# 初始化场景# self.scene = arcade.Scene()#map_name = "地图/家1.json"# 层属性layer_options = {"Platforms": {"use_spatial_hash": True,},}# 读地图文件self.tile_map = arcade.load_tilemap(map_name, TILE_SCALING, layer_options)# 使用我们的TileMap初始化场景,这将自动添加所有层,以正确的顺序在场景中显示为SpriteList。self.scene = arcade.Scene.from_tilemap(self.tile_map)# 添加精灵列表self.scene.add_sprite_list("Player")self.scene.add_sprite_list("Walls", use_spatial_hash=True)# 添加角色.image_source = "images/1-1.png"self.player_sprite = arcade.Sprite(image_source, CHARACTER_SCALING)self.player_sprite.center_x = 264self.player_sprite.center_y = 128self.scene.add_sprite("Player", self.player_sprite)wall = arcade.Sprite("images/房子.png", TILE_SCALING)wall.center_x = SCREEN_WIDTH /2wall.center_y = SCREEN_HEIGHT /2+200self.scene.add_sprite("Walls", wall)for x in range(0, 1250, 64):wall = arcade.Sprite(":resources:images/tiles/grassMid.png", TILE_SCALING)wall.center_x = xwall.center_y = 32self.scene.add_sprite("Walls", wall)for x in range(128, 1250, 125):coin = arcade.Sprite(":resources:images/items/coinGold.png", 0.5)coin.center_x =xcoin.center_y = 96self.scene.add_sprite("Coins", coin)# 物理引# self.physics_engine = arcade.PhysicsEngineSimple(#     self.player_sprite, self.scene.get_sprite_list("Walls"))self.physics_engine = arcade.PhysicsEnginePlatformer(self.player_sprite, gravity_constant=GRAVITY, walls=self.scene["Walls"])# Set the background colorif self.tile_map.background_color:arcade.set_background_color(self.tile_map.background_color)def on_draw(self):self.clear()self.camera.use()  # 摄象机        self.scene.draw()self.gui_camera.use() # 以上三行,顺序很重要,不信试试# Draw our score on the screen, scrolling it with the viewportscore_text = f"得分: {self.score}"arcade.draw_text(score_text, 10, 500, arcade.csscolor.RED, 28,)def on_key_press(self, key, modifiers):"""每当按下键时调用."""if key == arcade.key.UP or key == arcade.key.W:if self.physics_engine.can_jump():self.player_sprite.change_y = PLAYER_JUMP_SPEEDarcade.play_sound(self.jump_sound)elif key == arcade.key.LEFT or key == arcade.key.A:self.player_sprite.change_x = -PLAYER_MOVEMENT_SPEEDelif key == arcade.key.RIGHT or key == arcade.key.D:self.player_sprite.change_x = PLAYER_MOVEMENT_SPEEDdef on_key_release(self, key, modifiers):"""键盘释放时"""if key == arcade.key.LEFT or key == arcade.key.A:self.player_sprite.change_x = 0elif key == arcade.key.RIGHT or key == arcade.key.D:self.player_sprite.change_x = 0def center_camera_to_player(self):"""摄相机随角色移动"""screen_center_x = self.player_sprite.center_x - (self.camera.viewport_width / 2)screen_center_y = self.player_sprite.center_y - (self.camera.viewport_height / 2)# 防止相机出界if screen_center_x < 0:screen_center_x = 0if screen_center_y < 0:screen_center_y = 0player_centered = screen_center_x, screen_center_yself.camera.move_to(player_centered)def on_update(self, delta_time):"""运动和游戏逻辑"""# 检测磁到的金币coin_hit_list = arcade.check_for_collision_with_list(self.player_sprite, self.scene["Coins"])# 删除金币for coin in coin_hit_list:coin.remove_from_sprite_lists()  # 删除金币arcade.play_sound(self.collect_coin_sound)self.score += 1self.physics_engine.update()  # 运用引擎移动角色self.center_camera_to_player()   # 摄象机def main():"""主程序"""window = MyGame()window.setup()arcade.run()if __name__ == "__main__":main()

3、精灵分层管理

3.1 多层地图的实现

新的层,包括前景、背景和“不要触摸”
背景层将出现在玩家的后面
前景层将出现在玩家面前
不要触摸层将导致玩家重置到开始位置

3.2 关健点,角色可选择插入到某层前或后

   # 添加精灵列表,把玩家放在哪一层,前后层在此关健self.scene.add_sprite_list_after("Player", LAYER_platforms)# self.scene.add_sprite_list("Player")# self.scene.add_sprite_list("Walls", use_spatial_hash=True)# 添加角色.image_source = "images/1-1.png"self.player_sprite = arcade.Sprite(image_source, CHARACTER_Scaling)# self.player_sprite.center_x = 264# self.player_sprite.center_y = 128self.player_sprite.center_x = PLAYER_start_xself.player_sprite.center_y = PLAYER_start_yself.scene.add_sprite("Player", self.player_sprite)

3.3 效果图


3.4 代码实现

# _*_ coding: UTF-8 _*_
# 开发人员: Administrator
# 开发时间:2022/11/5 16:59import arcade# 设置
SCREEN_width = 1000
SCREEN_height = 650
SCREEN_title = "我的游戏"# 常量用于从原始大小缩放精灵
CHARACTER_Scaling = 1
PLAYER_movement_speed = 5TILE_Scaling = 2
COIN_Scaling = 0.5
SPRITE_pixel_size = 128
GRID_pixel_size = SPRITE_pixel_size * TILE_Scaling# 重力
GRAVITY = 1
PLAYER_jump_speed = 25PLAYER_start_x = 64
PLAYER_start_y = 225# 层名 此处的层名应为地图文件中的层名,
LAYER_platforms = "grass"
LAYER_tree = "tree"class MyGame(arcade.Window):def __init__(self):# 初始化窗体super().__init__(SCREEN_width, SCREEN_height, SCREEN_title)self.scene = Noneself.player_sprite = Nonearcade.set_background_color(arcade.csscolor.BLUE)self.physics_engine = Noneself.camera = None  # 摄象机self.gui_camera = None  # 第二摄象机self.score = 0# 加载声音self.collect_coin_sound = arcade.load_sound("sounds/coin2.wav")self.jump_sound = arcade.load_sound("sounds/s3.wav")self.game_over = arcade.load_sound(":resources:sounds/gameover1.wav")# 设置地图self.tile_map = None# 是否重新设置分数self.reset_score = True# 地图的最右边self.end_of_map = 0# 关卡级别self.level = 1def setup(self):# 摄象机self.camera = arcade.Camera(self.width, self.height)self.gui_camera = arcade.Camera(self.width, self.height)# 初始化场景# self.scene = arcade.Scene()#map_name = f"地图\家1.json"  # jia{self.level}.json"# 层属性layer_options = {LAYER_platforms: {"use_spatial_hash": True,},LAYER_tree: {"use_spatial_hash": False,},}# 读地图文件self.tile_map = arcade.load_tilemap(map_name, TILE_Scaling, layer_options)print(self.tile_map.properties)# print(self.tile_map.get_tilemap_layer())# 使用我们的TileMap初始化场景,这将自动添加所有层,以正确的顺序在场景中显示为SpriteList。self.scene = arcade.Scene.from_tilemap(self.tile_map)print('精灵列表', self.scene)if self.reset_score:self.score = 0self.reset_score = Trueself.end_of_map = self.tile_map.width * GRID_pixel_size# 添加精灵列表,把玩家放在哪一层,前后层在此关健self.scene.add_sprite_list_after("Player", LAYER_platforms)# self.scene.add_sprite_list("Player")# self.scene.add_sprite_list("Walls", use_spatial_hash=True)# 添加角色.image_source = "images/1-1.png"self.player_sprite = arcade.Sprite(image_source, CHARACTER_Scaling)# self.player_sprite.center_x = 264# self.player_sprite.center_y = 128self.player_sprite.center_x = PLAYER_start_xself.player_sprite.center_y = PLAYER_start_yself.scene.add_sprite("Player", self.player_sprite)# self.physics_engine = arcade.PhysicsEnginePlatformer(#     self.player_sprite, gravity_constant=GRAVITY, walls=self.scene[LAYER_tree]# )  # 此处的walls=指定支撑图层self.physics_engine = arcade.PhysicsEngineSimple(self.player_sprite, self.scene.get_sprite_list("fz"))# 设置背景色if self.tile_map.background_color:arcade.set_background_color(self.tile_map.background_color)def on_draw(self):self.clear()self.camera.use()  # 摄象机self.scene.draw()  # 摄相机与scence的顺序不能放错,否则不会移动self.gui_camera.use()# 在屏幕上绘制分数,用屏幕滚动score_text = f"得分: {self.score}"arcade.draw_text(score_text, 10, 500, arcade.csscolor.RED, 18, )def on_key_press(self, key, modifiers):"""每当按下键时调用."""# if key == arcade.key.UP or key == arcade.key.W:#     if self.physics_engine.can_jump():#         self.player_sprite.change_y = PLAYER_jump_speed#         arcade.play_sound(self.jump_sound)if key == arcade.key.UP or key == arcade.key.W:self.player_sprite.change_y = PLAYER_movement_speedelif key == arcade.key.DOWN or key == arcade.key.S:self.player_sprite.change_y = -PLAYER_movement_speedelif key == arcade.key.LEFT or key == arcade.key.A:self.player_sprite.change_x = -PLAYER_movement_speedelif key == arcade.key.RIGHT or key == arcade.key.D:self.player_sprite.change_x = PLAYER_movement_speeddef on_key_release(self, key, modifiers):"""键盘释放时"""if key == arcade.key.LEFT or key == arcade.key.A:self.player_sprite.change_x = 0elif key == arcade.key.RIGHT or key == arcade.key.D:self.player_sprite.change_x = 0elif key == arcade.key.UP or key == arcade.key.W:self.player_sprite.change_y = 0elif key == arcade.key.DOWN or key == arcade.key.S:self.player_sprite.change_y = 0def center_camera_to_player(self):"""摄相机随角色移动"""screen_center_x = self.player_sprite.center_x - (self.camera.viewport_width / 2)screen_center_y = self.player_sprite.center_y - (self.camera.viewport_height / 2)# 防止相机出界if screen_center_x < 0:screen_center_x = 0if screen_center_y < 0:screen_center_y = 0player_centered = screen_center_x, screen_center_y# print(player_centered)self.camera.move_to(player_centered)# print(self.player_sprite.center_x)def on_update(self, delta_time):"""运动和游戏逻辑"""self.physics_engine.update()  # 运用引擎移动角色# # 检测磁到的金币# coin_hit_list = arcade.check_for_collision_with_list(#     self.player_sprite, self.scene["Coins"])## # 删除金币# for coin in coin_hit_list:#     coin.remove_from_sprite_lists()  # 删除金币#     arcade.play_sound(self.collect_coin_sound)#     self.score += 1# 掉下或level达到最后一关时,游戏结束,或重新开始if self.player_sprite.center_y < -100 or self.level==3:self.player_sprite.center_x = PLAYER_start_xself.player_sprite.center_y = PLAYER_start_yarcade.play_sound(self.game_over)# # 碰到不可碰物品,如水火,当前关卡重新开始# if arcade.check_for_collision_with_list(#         self.player_sprite, self.scene[LAYER_dont_touch]):#     self.player_sprite.change_x = 0#     self.player_sprite.change_y = 0#     self.player_sprite.center_x = PLAYER_start_x#     self.player_sprite.center_y = PLAYER_start_y#     arcade.play_sound(self.game_over)# 是否走到地图尽头if self.player_sprite.center_x >= self.end_of_map:# 关卡升级self.level += 1# 不需重新积分self.reset_score = False# 加载下个场景self.setup()self.center_camera_to_player()   # 摄象机def main():"""主程序"""window = MyGame()window.setup()arcade.run()if __name__ == "__main__":main()

源码获取

关注博主后,私聊博主免费获取
需要技术指导,育娃新思考,企业软件合作等更多服务请联系博主

今天是以此模板持续更新此育儿专栏的第 13/50次。
可以关注我,点赞我、评论我、收藏我啦。

小学生python游戏编程arcade----基本知识3相关推荐

  1. 小学生python游戏编程arcade----基本知识1

    小学生python游戏编程arcade----基本知识 前言 基本知识 1.简单窗体 2.试着添加角色及背景 3.场景 4.角色控制及物理引擎 总结 源码获取 前言 前面章节分享试用了pyzero,p ...

  2. 小学生python游戏编程arcade----可旋转的坦克的发射子弹

    小学生python游戏编程arcade----可旋转的坦克的发射子弹 前言 小学生python游戏编程arcade----可旋转坦克的发射子弹 1.可旋转坦克的发射子弹 1.1 子弹的类 1.2 发射 ...

  3. 小学生python游戏编程arcade----动画图片实现爆炸效果

    小学生python游戏编程arcade----动画图片实现爆炸效果 前言 动画图片实现爆炸效果 1.爆炸类的的实现 1.1爆炸图片 1.2 类的定义 1.3 爆炸类的引用 1.4 爆炸类的更新 1.5 ...

  4. 小学生python游戏编程arcade----excel调用

    小学生python游戏编程arcade----excel调用 前言 小学生python游戏编程arcade----excel调用 1.excel文件 1.1 excel表头 1.2 excel文件 1 ...

  5. 小学生python游戏编程arcade----爆炸粒子类

    小学生python游戏编程arcade----爆炸粒子类 前言 1.1 参数设置 粒子加速下降的速度.如果不需要,则为0 粒子退出的速度 粒子移动的速度.范围为2.5<-->5,设置为2. ...

  6. 小学生python游戏编程arcade----敌人自动面向角色并开火

    小学生python游戏编程arcade----敌人自动面向角色并开火 前言 敌人自动攻击角色的实现 1. 1.1 计算角度,使用敌人面向角色 1.2 自动生成各色子弹,不是通过调用图片 1.3 控制敌 ...

  7. 小学生python游戏编程arcade----灯光示例

    小学生python游戏编程arcade----灯光示例 前言 灯光阴影效果 1.灯光效果 1.1 玩家灯光效果 1.2 代码 2.灯光效果 2.1 软效果 2.2码实现 3.硬效果 3.1 灯光硬效果 ...

  8. 小学生python游戏编程arcade----坦克大战2

    小学生python游戏编程arcade----坦克大战2 前言 多摄象头显得分,title地图加载,精灵分层管理,移动精灵 1.提示框制作 1.1养眼绿色 1.2 画距形提示框 1.3 效果图 1.4 ...

  9. 小学生python游戏编程arcade----坦克大战4

    小学生python游戏编程arcade----坦克大战4 前言 坦克大战4 1.1 每单元英语单词学完升级效果 1.2 单词调用及敌坦克随机问题 1.3 效果图 1.4 代码实现 源码获取 前言 接上 ...

最新文章

  1. 【 MATLAB 】用 MATLAB 实现离散时间傅里叶变换(DTFT)的两个案例分析
  2. java实现计算机图形学中点画线算法
  3. 【机器学习入门笔记9:TensorFlow四则运算】20190216
  4. 234. Palindrome Linked List
  5. android mvvm流程图,MVVM框架模式详解
  6. php 检测 变量是否设置,php判断变量是否定义
  7. 【bzoj4386】[POI2015]Wycieczki 矩阵乘法
  8. 1602 c语言驱动程序,51单片机驱动LCD1602程序设计(C语言)很详细的教程
  9. Adobe Ps/Pr/ME/PL/Au/Ae/Ch/An/Lr/Dw/Ai/Id/Acrobat/2019/windows/mac
  10. html验证码 按住向右滑动,js实现滑动滑块验证登录
  11. 计算机cpu近几年价格,2014年6月15日电脑CPU最新报价(表格)
  12. 【漏洞复现】Hadoop YARN 资源管理系统 REST API未授权访问
  13. 概率密度函数曲线及绘制
  14. 微信公众号js接口安全域名的MP_verify_*.txt文件的放置路径
  15. Scrapy Tutorial
  16. 计算机科学 期刊怎么样,《计算机科学》杂志怎么样?提交的好吗?
  17. 如何判断您是否需要新的iPhone电池
  18. [python]python的引用(续)
  19. 关于马云的“996”
  20. 如何用最短的时间理解一项数字技术?推荐这7本最新的白皮书(大数据、云原生、区块链、联邦学习等,附下载)...

热门文章

  1. pyhton mechanize 学习笔记
  2. c语言bmp图像YUV转化成RGB,RGB与YUV图像格式的相互转换
  3. python 输入某年某日,判断这是这一年的第几天?(可以用Python的内置模块)
  4. Shell编程、part1
  5. matlab计算macd_matlab股市图k线 matlab画macd图
  6. Shader入门---曲面细分着色器和几何着色器
  7. JSP程序设计实训(十二)——MVC设计模式
  8. 前端web:一、Html
  9. java面试题-京北方、泰康人寿
  10. android 开发百度地图问题集锦