精华内容
下载资源
问答
  • 教你如何用 Python 写个小游戏引言最近 python 语言大火, 除了在科学计算领域 python 有用武之地之外, 在游戏后台等方面, python 也大放异彩, 本篇博文将按照正规的项目开发流程, 手把手教大家写个 python 小游戏,...

    教你如何用 Python 写一个小游戏

    引言

    最近 python 语言大火, 除了在科学计算领域 python 有用武之地之外, 在游戏后台等方面, python 也大放异彩, 本篇博文将按照正规的项目开发流程, 手把手教大家写个 python 小游戏, 来感受下其中的有趣之处本次开发的游戏叫做 alien invasion

    安装 pygame 并创建能左右移动的飞船

    安装 pygame

    本人电脑是 windows 10python3.6,pygame 下载地址: 传送门 https://pypi.python.org/pypi/Pygame/1.9.3

    请自行下载对应 python 版本的 pygame

    运行以下命令$ pip install wheel

    $ pip install pygame1.9.3cp36cp36mwin_amd64.whl

    创建 Pygame 窗口及响应用户输入

    新建一个文件夹 alien_invasion, 并在文件夹中新建 alien_invasion.py 文件, 输入如下代码importsys

    importpygame

    defrun_game():

    #initialize game and create a dispaly object

    pygame.init()

    screen=pygame.display.set_mode((1200,800))

    pygame.display.set_caption("Alien Invasion")

    # set backgroud color

    bg_color=(230,230,230)

    # game loop

    whileTrue:

    # supervise keyboard and mouse item

    foreventinpygame.event.get():

    ifevent.type==pygame.QUIT:

    sys.exit()

    # fill color

    screen.fill(bg_color)

    # visualiaze the window

    pygame.display.flip()

    run_game()

    运行上述代码, 我们可以得到一个灰色界面的窗口:

    $ python alien_invasion.py

    创建设置类

    为了在写游戏的过程中能便捷地创建一些新功能, 下面额外编写一个 settings 模块, 其中包含一个 Settings 类, 用于将所有设置存储在一个地方这样在以后项目增大时修改游戏的外观就更加容易

    我们首先将 alien_invasion.py 中的显示屏大小及显示屏颜色进行修改

    首先在 alien_invasion 文件夹下新建 python 文件 settings.py, 并向其中添加如下代码:classSettings(object):

    """docstring for Settings"""

    def__init__(self):

    # initialize setting of game

    # screen setting

    self.screen_width=1200

    self.screen_height=800

    self.bg_color=(230,230,230)

    然后再 alien_invasion.py 中导入 Settings 类, 并使用相关设置, 修改如下:importsys

    importpygame

    fromsettingsimportSettings

    defrun_game():

    #initialize game and create a dispaly object

    pygame.init()

    ai_settings=Settings()

    screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))

    pygame.display.set_caption("Alien Invasion")

    # set backgroud color

    bg_color=(230,230,230)

    # game loop

    whileTrue:

    # supervise keyboard and mouse item

    foreventinpygame.event.get():

    ifevent.type==pygame.QUIT:

    sys.exit()

    # fill color

    screen.fill(ai_settings.bg_color)

    # visualiaze the window

    pygame.display.flip()

    run_game()

    添加飞船图像

    接下来, 我们需要将飞船加入游戏中为了在屏幕上绘制玩家的飞船, 我们将加载一幅图像, 再使用 Pygame()方法 blit()绘制它

    在游戏中几乎可以使用各种类型的图像文件, 但是使用位图 (.bmp) 文件最为简单, 这是因为 Pygame 默认加载位图虽然其他类型的图像也能加载, 但是需要安装额外的库我们推荐去免费的图片素材网站上去找图像: 传送门 https://pixabay.com/ 我们在主项目文件夹 (alien_invasion) 中新建一个文件夹叫 images, 将如下 bmp 图片放入其中

    接下来, 我们创建飞船类 ship.py:importpygame

    classShip():

    def__init__(self,screen):

    #initialize spaceship and its location

    self.screen=screen

    # load bmp image and get rectangle

    self.image=pygame.image.load('image/ship.bmp')

    self.rect=self.image.get_rect()

    self.screen_rect=screen.get_rect()

    #put spaceship on the bottom of window

    self.rect.centerx=self.screen_rect.centerx

    self.rect.bottom=self.screen_rect.bottom

    defblitme(self):

    #buld the spaceship at the specific location

    self.screen.blit(self.image,self.rect)

    最后我们在屏幕上绘制飞船, 即在 alien_invasion.py 文件中调用 blitme 方法:importsys

    importpygame

    fromsettingsimportSettings

    fromshipimportSettings

    defrun_game():

    #initialize game and create a dispaly object

    pygame.init()

    ai_settings=Settings()

    screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))

    ship=Ship(screen)

    pygame.display.set_caption("Alien Invasion")

    # set backgroud color

    bg_color=(230,230,230)

    # game loop

    whileTrue:

    # supervise keyboard and mouse item

    foreventinpygame.event.get():

    ifevent.type==pygame.QUIT:

    sys.exit()

    # fill color

    screen.fill(ai_settings.bg_color)

    ship.blitme()

    # visualiaze the window

    pygame.display.flip()

    run_game()

    重构: 模块 game_functions

    在大型项目中, 经常需要在添加新代码前重构既有代码重构的目的是为了简化代码的结构, 使其更加容易扩展我们将实现一个 game_functions 模块, 它将存储大量让游戏 Alien invasion 运行的函数通过创建模块 game_functions, 可避免 alien_invasion.py 太长, 使其逻辑更容易理解

    函数 check_events()

    首先我们将管理事件的代码移到一个名为 check_events()的函数中, 目的是为了隔离事件循环importsys

    importpygame

    defcheck_events():

    #respond to keyboard and mouse item

    foreventinpygame.event.get():

    ifevent.type==pygame.QUIT:

    sys.exit()

    然后我们修改 alien_invasion.py 代码, 导入 game_functions 模块, 并将事件循环替换成对函数 check_events()的调用:importsys

    importpygame

    fromsettingsimportSettings

    fromshipimportShip

    importgame_functionsasgf

    defrun_game():

    #initialize game and create a dispaly object

    pygame.init()

    ai_settings=Settings()

    来源: https://cloud.tencent.com/developer/article/1023469?fromSource=waitui

    展开全文
  • 假设我们用一台手机A为绑定设备的控制端。现在将灯管这个设备分享给手机B。01单个分享点击设备二维码小图标。2.再用手机B去扫下,这样子手机B就获得这个设备的控制权。02如何看到获得分享设备的历史记录进入物联网...

    导读:

    如何分享物联网设备,单个分享、获得分享设备历史记录、批量分享及取消分享。

    假设我们用一台手机A为绑定设备的控制端。现在将灯管这个设备分享给手机B。

    01单个分享

    1. 点击设备二维码小图标。

    自制物联网智能设备-9.分享我的物联网设备

    2.再用手机B去扫下,这样子手机B就获得这个设备的控制权。

    自制物联网智能设备-9.分享我的物联网设备

    02如何看到获得分享设备的历史记录

    进入物联网平台管理(或在公众号“红纳里斯”那也可以进入到平台)。点击控制端界面右下方“分享管理”——“分享给我的”,便可。

    自制物联网智能设备-9.分享我的物联网设备

    03取消分享

    点击右上角的工具按钮,“共享控制”为“禁止”。这样子共享控制就关闭掉。

    自制物联网智能设备-9.分享我的物联网设备

    手机B再次点击“分享给我的”,列表就会没有灯管这个设备。

    自制物联网智能设备-9.分享我的物联网设备

    如果想再次分享的话,“分享控制”为“打开”,手机B再次刷新一次,即可再次看到灯管这个设备。

    自制物联网智能设备-9.分享我的物联网设备

    04批量分享

    先将左上角的小框勾选上,然后再点击“分享管理”——“批量分享”。

    自制物联网智能设备-9.分享我的物联网设备

    这样子就可一次性获得多个设备。

    自制物联网智能设备-9.分享我的物联网设备

    清空获得的分享设备:点击右上角的“”清空分享给我的设备”即可。

    自制物联网智能设备-9.分享我的物联网设备

    展开全文
  • 《Google Android SDK开发范例大全(第3版)》在上版的基础上,以Android手机应用程序开发(采用Android SDK 2.3.3)为主题,超过200多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计...
  • 《Google Android SDK开发范例大全(第3版)》在上版的基础上,以Android手机应用程序开发(采用Android SDK 2.3.3)为主题,超过200多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计...
  •  《google android sdk开发范例大全(第3版)》在上版的基础上,以android手机应用程序开发(采用android sdk 2.3.3)为主题,超过200多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计...
  • 5.5 自制日历手机数据库——实现SQLiteOpenHelper 5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与...
  • 开发者和案例更多:HBuilder装机量500万,开发者社区月活百万,70多个QQ微信群承载10万人。案例众多,uni统计月活10亿(详见) 性能更高(见评测) 更丰富的周边生态,插件市场数千款插件 提供比小程序原生开发更...
  • 开发者和案例更多:HBuilder装机量500万,开发者社区月活百万,70多个QQ微信群承载10万人。案例众多,uni统计月活10亿(详见) 性能更高(见评测) 更丰富的周边生态,插件市场数千款插件 提供比小程序原生开发更...
  • 本项目使用了大量Gif图片, 而且github在国内的访问速度非常不稳定,导致文章页面打开稍慢, 为了解决大陆用户访问项目速度慢的问题, zhaoolee在阿里云买了一台5M的VPS, 已将所有文章链接替换到v2fy.com域名下, 访问...
  • 部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • 部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • 部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例088 自制平滑进度条控件 125 实例089 MaskedTextBox控件的简单应用 128 实例090 制作日历计划任务 130 实例091 在ProgressBar控件中显示进度百分比 132 实例092 在NumericUpDown控件中显示当前系统...
  • 实例088 自制平滑进度条控件 125 实例089 MaskedTextBox控件的简单应用 128 实例090 制作日历计划任务 130 实例091 在ProgressBar控件中显示进度百分比 132 实例092 在NumericUpDown控件中显示当前系统日期...
  • 实例088 自制平滑进度条控件 125 实例089 MaskedTextBox控件的简单应用 128 实例090 制作日历计划任务 130 实例091 在ProgressBar控件中显示进度百分比 132 实例092 在NumericUpDown控件中显示当前系统日期...
  • 实例012 自制录音机 34 实例013 实时在线广播 38 实例014 播放MIDI和WAV文件 40 实例015 利用sndPlaySound()函数播放音频文件 41 实例016 利用mciExecute()函数播放WAV文件 42 实例017 播放资源文件中的声音 43...
  • 实例012 自制录音机 34 实例013 实时在线广播 38 实例014 播放MIDI和WAV文件 40 实例015 利用sndPlaySound()函数播放音频文件 41 实例016 利用mciExecute()函数播放WAV文件 42 实例017 播放资源文件中的声音 43...
  • 实例212 验证手机号码是否正确 实例213 验证字符串是否为汉字 实例214 验证身份证号码是否有效 实例215 验证车牌号码是否有效 实例216 验证网站地址是否有效 实例217 验证数量和金额 实例218 验证字符串是否...

空空如也

空空如也

1
收藏数 20
精华内容 8
关键字:

如何自制一台手机