OnOff

Java多线程游戏仿真实例分享

十年热恋 提交于 2021-02-06 12:34:40
这是一篇学习分享博客,这篇博客将会介绍以下几项内容: 1、如何让一个程序同时做多件事?(多线程的创建、多线程的应用) 2、如何让小球在画面中真实地动起来?(赋予小球匀速直线、自由落体、上抛等向量运动) 3、多线程游戏仿真实例分享(飞机大战、接豆人、双线挑战三个游戏实例) 涉及的知识点有:多线程的应用、双缓冲绘图、小球的向量运动、游戏的逻辑判断、键盘监听器的使用、二维数组的使用、添加音乐效果等 游戏效果: 怎么样?如果觉得还不错的话就请继续看下去吧! 热身 第一步:创建画布 心急吃不了热豆腐,我们先从最简单的创建画布开始。 首先我们创建一个窗体,然后设置一些参数,从窗体中取得画笔,尝试在画布中心画一个图形,以下是参考代码: import java . awt . FlowLayout ; import java . awt . Graphics ; import java . awt . event . ActionEvent ; import java . awt . event . ActionListener ; import javax . swing . JButton ; import javax . swing . JFrame ; public class Frame { //声明画布对象 public Graphics g ; //主函数 public static

微信小程序 --- action-sheet底部弹框

房东的猫 提交于 2020-12-19 07:29:20
action-sheet:从屏幕底部弹出一个菜单,选择: 使用的时候,在给不同的 action-sheet-item 添加不同的事件。 效果: (这里的确定可以有多个) 代码: < button type ="primary" bindtap ="btnclick" > 按钮 </ button > < action-sheet hidden ="{{onOff}}" > < action-sheet-item class ='item' > 确定 </ action-sheet-item > < action-sheet-cancel class ='cancel' > 取消 </ action-sheet-cancel > </ action-sheet > JS: // 获取应用实例 const app = getApp() Page({ data: { onOff: false }, btnclick: function (){ this .setData({onOff: false }); } }) 来源: oschina 链接: https://my.oschina.net/u/4417595/blog/4247276

微信小程序 --- model弹框

坚强是说给别人听的谎言 提交于 2020-12-19 07:16:17
model弹框:在屏幕中间弹出,让你进行选择: 效果: 代码: < button type ="primary" bindtap ="btnclick" > 按钮 </ button > < modal title ="标题" confirm-text ="确认" cancel-text ="取消" hidden ="onOff" bindconfirm ="modalConfirm" bindcancel ="modalCancel" > 这里是会话内容 </ modal > page.js: // 获取应用实例 const app = getApp() Page({ data: { onOff: true }, btnclick: function (){ var onOff = this .data.onOff; this .setData({onOff:! onOff}); } }) 还可以使用JS: btnclick: function (){ wx.showModal({ title: '提示' , content: '这是一个模态弹窗' , success: function (res) { if (res.confirm) { console.log( '用户点击确定' ) } else if (res.cancel) { console.log( '用户点击取消'

input type类型和input表单属性

落爺英雄遲暮 提交于 2020-11-11 09:24:46
一、input type类型 1.Input 类型 - email 在提交表单时,会自动验证 email 域的值。 E-mail: < input type ="email" name ="user_email" /> 当不符合邮箱的时候会自动弹出 2.Input 类型 - url url 类型用于应该包含 URL 地址的输入域。 在提交表单时,会自动验证 url 域的值。 Homepage: < input type ="url" name ="user_url" /> 错误时提示 3.Input 类型 - number number 类型用于应该包含数值的输入域。 您还能够设定对所接受的数字的限定: Points: < input type ="number" name ="points" min ="1" max ="10" /> 可以店家右边上下箭头加减,当不符合的时候 属性 值 描述 max number 规定允许的最大值 min number 规定允许的最小值 step number 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等) value number 规定默认值 4.Input 类型 - range range 类型用于应该包含一定范围内数字值的输入域。 range 类型显示为滑动条。 您还能够设定对所接受的数字的限定: <

C#开机启动,托盘图标等小技巧

时光总嘲笑我的痴心妄想 提交于 2020-08-18 08:20:50
1. 开机启动   需要引用第三方库, Windows Script Host Object Model 1 using IWshRuntimeLibrary; 2 using System; 3 using System.Collections.Generic; 4 using System.Diagnostics; 5 using System.IO; 1 // https://www.cnblogs.com/mq0036/p/12117955.html 2 class KFSystemAutoStart 3 { 4 /// <summary> 5 /// 快捷方式名称 6 /// </summary> 7 private const string QuickName = " 销售系统工具 " ; 8 /// <summary> 9 /// 获取系统自启动目录 10 /// </summary> 11 private string systemStartPath 12 { 13 get 14 { 15 return Environment.GetFolderPath(Environment.SpecialFolder.Startup); 16 } 17 } 18 /// <summary> 19 /// 程序完整路径 20 /// </summary> 21 private

痞子衡嵌入式:16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动

我的梦境 提交于 2020-08-11 05:28:21
  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是 i.MXRT上使用16MB以上NOR Flash软复位无法正常启动问题的分析解决经验 。   痞子衡这几天在支持一个i.MXRT1050客户项目,客户遇到了软复位无法从32MB NOR Flash重新启动的问题。这个客户是做医疗设备的,已经基于i.MXRT做出一款成功的产品了,所以客户其实有丰富的i.MXRT使用经验。目前调试的项目是客户的第二款产品,这个软复位无法启动问题已经困扰他们很久,但问题毕竟不是特别紧急,不影响他们开发进度,所以耽搁至今。这次客户趁着出差苏州参加劳特巴赫TRACE32调试器培训机会,让痞子衡现场帮他们定位问题,经过一番调试和分析,痞子衡终于成功地解决了问题,特此将问题解决的全过程记录下来,供大家参考。 一、问题描述   在描述问题前,首先给大家介绍下客户的项目设计,底下是客户硬件简图。客户选用的i.MXRT1052作为主控,挂载了两个QSPI Flash,FlexSPI接口连接的32MB Flash用于启动和存放静态图片资源(只需要读即可),LPSPI接口连接的1MB Flash用于存放运行时状态数据(需要读写),此外板子连接了一个显示屏,所以还挂载一片SDRAM用于显示缓存,其实SDRAM除了显示缓存功能之外,还用于执行App(QSPI Flash里的App会自加载到SDRAM执行)。

痞子衡嵌入式:16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动

只谈情不闲聊 提交于 2020-08-10 20:19:20
  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是 i.MXRT上使用16MB以上NOR Flash软复位无法正常启动问题的分析解决经验 。   痞子衡这几天在支持一个i.MXRT1050客户项目,客户遇到了软复位无法从32MB NOR Flash重新启动的问题。这个客户是做医疗设备的,已经基于i.MXRT做出一款成功的产品了,所以客户其实有丰富的i.MXRT使用经验。目前调试的项目是客户的第二款产品,这个软复位无法启动问题已经困扰他们很久,但问题毕竟不是特别紧急,不影响他们开发进度,所以耽搁至今。这次客户趁着出差苏州参加劳特巴赫TRACE32调试器培训机会,让痞子衡现场帮他们定位问题,经过一番调试和分析,痞子衡终于成功地解决了问题,特此将问题解决的全过程记录下来,供大家参考。 一、问题描述   在描述问题前,首先给大家介绍下客户的项目设计,底下是客户硬件简图。客户选用的i.MXRT1052作为主控,挂载了两个QSPI Flash,FlexSPI接口连接的32MB Flash用于启动和存放静态图片资源(只需要读即可),LPSPI接口连接的1MB Flash用于存放运行时状态数据(需要读写),此外板子连接了一个显示屏,所以还挂载一片SDRAM用于显示缓存,其实SDRAM除了显示缓存功能之外,还用于执行App(QSPI Flash里的App会自加载到SDRAM执行)。

(三)Modbus RTU协议使用说明

≯℡__Kan透↙ 提交于 2020-08-05 05:20:30
一、Modbus RTU数据帧说明   由发送设备将 Modbus 报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收 新帧,并且知道何时报文结束。不完整的报文必须能够被检测到而错误标志必须作为结果被设置。 在 RTU 模式,报文帧由时长至少为 3.5 个字符时间的空闲间隔区分。在后续的部分,这个时间区 间被称作 t3.5 。   整个报文帧必须以连续的字符流发送。 如果两个字符之间的空闲间隔大于 1.5 个字符时间,则报文帧被认为不完整应该被接收节点丢弃。 二、MODBUS指令说明    1、读线圈寄存器01H   1) 描述:   读MODBUS从机线圈寄存器当前状态。   2) 查询:   例如从机地址为0x11,线圈寄存器的起始地址为0x0013,结束地址为0x0037。该次查询总共访问(0x0037-0x0013 + 1)37个线圈寄存器。 读线圈寄存器-查询 Hex 从机地址(1个字节) 11 功能码(1个字节) 01 寄存器起始地址高字节(1个字节) 00 寄存器起始地址低字节(1个字节) 13 寄存器数量高字节(1个字节) 00 寄存器数量低字节(1个字节) 25 CRC校验高字节(1个字节) 0E CRC校验低字节(1个字节) 84   3) 响应   响应负载中的各线圈状态与数据内容每位相对应。1代表ON,0代表OFF。若返回的线圈数不为8的倍数

灵动微MM32W系列低功耗MCU智能锁解决方案

纵饮孤独 提交于 2020-07-28 12:27:16
智能锁方案中使用到 灵动微 MM32W系列低功耗MCU,配合手机通过APP读取智能锁蓝牙信息,尝试配对,配对成功即可正常通讯,手机APP通过蓝牙把指令发送给智能锁进行解锁,整个流程简单可靠,该方案将彻底告别传统钥匙开锁。蓝牙智能锁安全便捷,符合用户的需求,可应用的日常场景广泛,例如:门锁(家门、仓库门、货车门等);车锁(电动车锁、自行车锁、摩托车锁等);私人箱柜锁(抽屉锁、更衣柜、旅行箱、工具箱等)。接下来灵动微总代理英尚微给大家介绍一个使用场景非常丰富的蓝牙应用方案——基于MM32W系列开发的蓝牙智能锁方案。 图1方案场景 硬件资源如下: 本方案基于MM32BLE_TestBoard进行测试验证,搭配上一颗微型的双向直流马达作为开锁方式的载体,这里只用马达驱动开锁,关锁默认为手动操作,用户可以通过手机APP来操作开锁。在硬件原理上,本方案使用到的DC马达是通过一颗专用的IC芯片来驱动,其控制引脚连接到MCU的PD2和PD3,通过控制两个IO的电平可以对马达进行不同运动状态的操作;使用PB1连接到绿色LED指示灯,可作为蓝牙连接状态的指示;模拟锁体状态功能引脚PA1配置为上拉输入,低功耗唤醒引脚选择PA0配置为上拉输入;蓝牙相关的功能引脚与前面介绍的方案一致,此处不做过多展开。以下为DC马达驱动原理图: 图2 方案应用图 软件资源如下: 结合上述使用到的硬件资源

BLE MESH 学习[1]

Deadly 提交于 2020-05-03 23:04:52
BLE MESH 学习 BLE MESH 是一种蓝牙(n:m)组网的技术。 本篇先介绍 BLE MESH 到使用 ESP32 的官方示例对其进行学习讲解。 后面会进一步学习 SIG 的 BLE MESH 协议和架构,以及 RTL8762C 使用。 一、 BLE 和 经典蓝牙简介 1.1 SIG 简介 蓝牙技术现如今由蓝牙技术联盟(Bluetooth special interest group,简称Bluetooth SIG)制定,后面称 SIG。SIG 负责发布维护蓝牙的通信规格和标准。 1.2 BLE 的诞生 SIG 在 2010 年发布了蓝牙4.0,第一次引入的 LE(Low Energy)模式,到后来 2014年发布蓝牙4.2 ,2016 年发布蓝牙5.0。其中 LE 模式常被称为 BLE (Bluetooth Low Energy,蓝牙低功耗)。 在蓝牙4.0 规格中,SIG 定义了四种蓝牙 controller 技术:BR,EDR,AMP 和LE,也就是说,蓝牙只有一种蓝牙,那就是 SIG 的蓝牙,而蓝牙技术本身包含四种类型:BR,EDR,AM 和 LE。 其中 LE 技术就是面向更低成本和功率消耗应用的,在物联网有更好的应用。相反地其他 BR、EDR、AM 等经典技术也就合称为经典蓝牙(BT)。 1.3 BLE 和经典蓝牙应用