首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EasyX图形库学习(三、easyX实现移动小球、图片-加载、输出)

设置文本背景模式为透明,这样文本在绘制时不会覆盖背景。 小球属性定义与移动: 定义了一个小球,包括其位置(x, y)、半径r、速度speed以及方向(vx, vy)。...在循环中,根据用户按键消息来更新小球方向。 每次循环都会更新小球位置,并重新绘制它。...//支持双击 //设置窗口背景颜色 setbkcolor(YELLOW); //设置背景颜色填充整个窗口 cleardevice(); //窗口坐标体系:窗口左上角是坐标原点,X轴向右增大...,y轴向下增大 //设置背景模式 setbkmode(TRANSPARENT);//背景透明 //定义小球属性 int x = 50; int y = 50; int r = 20;...setfillcolor(RGB(43, 145, 175)); solidcircle(x, y, r); //更新小球位置 x += speed * vx; y += speed

32010
您找到你想要的搜索结果了吗?
是的
没有找到

15分钟JS做一个简易计算器

前言 这个小练手旨在帮助刚上手学习JavaScript同学练习最基本Js知识,大神勿喷哈,由于这个是非常简易计算器,可以完成功能有加减乘除和AC(清屏),DEL(退格)等基本运算,所以代码也不复杂...JavaScript部分 请先不要直接看这部分代码,先看我思路讲解再看这部分,你绝对可以轻松理解 思路讲解 请先不要看上面的JS代码,接下来请试着跟着我思路走,完成这个计算器功能,我是分成三个部分来解决...第一部分:获取值到屏幕上 我认为解决简单JS问题大体都可以分三步: 1.获取你想操作元素; 2.保存你想操作元素; 3.对元素进行(遍历)操作; 我第一步目的是将除了AC,DEL这两个键之外按键值获取到屏幕上...0,1,2,3,4,5,6,7,8,9," . "," + "," - "," * "," \ "," = "等一系列东西,我们当然要对数字和计算符号进行分开操作,所以我们If……else……来判断一下...这种情况也分两部分,一种是用户按了等号,一种是按了除等号之外其他加减乘除运算符号,因为等号比较特殊一点,按了就直接应该得出结果了,所以要区if……else……分开。我这样思路你可以理解吧!

2.4K20

Python做一个简单翻译工具

本文就来自编程教室一位“小”读者投稿(互助学习1群里同学应该对作者名字很熟悉吧 ? )。我看着他不停地产出新代码和技术文章,不禁感叹“后生可畏”。...于是我就想,能否万能 python 制作一个命令行下翻译工具呢? 说干就干! 网上搜索了点信息,加上一顿操作,最终被我捣鼓出来了。来看下最终效果: ?...这里用到就是一些常用爬虫分析和操作,有道翻译也基本类似,不再赘述,具体操作可参加文末给出完整代码。 接下来我们来看看与众不同谷歌翻译,这个玩意实在有些复杂。...我代码里用到解法是网上,仿照谷歌翻译页面上提供函数, JavaScript 去计算出了这个参数(我怀疑他就是拿前端源码,没仔细对照)。...这个部分源码就在 Py4Js 这个类里边了。 特别说明下,因为无法直接使用谷歌翻译,所以我把它做成了可选项,默认不会调用。

1.2K30

Redis 做一个可靠延迟队列

另一方面频繁扫表可能消耗过多数据库资源,影响线上交易吞吐量。 此外还有朋友使用 Redis 过期通知、时间轮、Java DelayQueue 等方式实现延时任务。...原理详解 消息队列涉及几个关键 redis 数据结构: msgKey: 为了避免两条内容完全相同消息造成意外影响,我们将每条消息放到一个字符串类型键中,并分配一个 UUID 作为它唯一标识。...其实简单很,让我们一起来详细看看吧~ pending2ReadyScript pending2ReadyScript 使用 zrangebyscore 扫描已到投递时间消息ID并把它们移动到 ready...redis.call('ZAdd', KEYS[2], ARGV[1], msg) return msg unack2RetryScript unack2RetryScript 从 retry 中找出所有已到重试时间消息并把它们移动到...,随后执行 unack2RetryScript 会立即将它移动到 retry key func (q *DelayQueue) nack(idStr string) error {  ctx := context.Background

42610

shader做一个柿子颜色过场动画

想要提高编写shader水平,需要不断学习和练习。 跪着看完大神们shadertoy作品后打算自己找个软柿子捏一捏。...先简化处理,只控制某个颜色出场时第一个像素 x 位置,选择 -cos(t) 作为运动速度曲线。 对应地,将屏幕x范围映射到(-1, 1)区间,x = 0位置在屏幕中下方。 ? ?...原理和上一篇“带通”类似。只不过这里“遮罩”不是处理空间,而是处理时间。 可以理解为四个颜色动画无时无刻都在自己运行,当时间处于某个区间内时,对应颜色才会被画出来。...时间,但是由于上面将每个颜色播放提前了,导致4PI长度时间末尾会有一段空白时间,这段时间就刚好用来模拟原效果里停留效果。...一开始我是采用 sin() 作为运动曲线,也尝试过映射到不同屏幕坐标范围,后来都调整了。 目前代码没有经过深度调优,尽量保持了和自己思路比较匹配写法。 完整代码可从下方领取。

81120

「Web Animation API 专题」原生JS制作一个图片随机移动动画

,然而,每个现行动画技术都存在一定缺点,如 CSS3动画必须通过JS去获取动态改变值,一个动画效果分散在css文件和js文件里不好维护,setInterval 时间往往是不精确而且还会卡顿,引入额外动画封装库也并非对性能敏感业务适用...JS去支持通用动画解决方案, Web Animation API 可能就是一个不错解决方案。...为了让大家对这个API有个清晰认识,笔者在接下来系列文章里,五六个例子让大家理解这个API,今天笔者将用此API实现一个随机移动图片开始进行介绍,比如用这个效果我们可以制作一个随机飘浮移动广告位...此函数没有进行进行精确距离计算,只是判断了x和y轴上移动距离大小最大距离除以速度,示例代码如下: function velocity(prev, next) { var x = Math.abs...下一篇文章我将用不到20行原生js代码纯手工撸一个漂亮时钟,敬请期待...

3.9K30

使用原生js做一个简单定时访问页面

2020年3月某一个周末,我在无聊之下想通过js实现刷浏览量功能,它优点是不需要引入任何东西,只需要建一个html页面,将我们js代码加进去就可以执行。...(记得允许你浏览器打开其他页面) 开始思路,通过jsfor循环一直访问文章地址,链接方式使用window.open("地址")方式 $(function (){ for (var...location.close(); 这个是关闭标签页功能,但是测试后我们是关闭了我们js页面,我们实际要关闭是open页面,再修改一下,在我们使用open时候var定义接受一下对象以便于关闭打开标签页...,这样每次定时执行会先关闭之前页面,再执行我们定义好数组地址。...null){ window.open(ad[i]); } } } 但是如果要每次要打开100个地址还是对浏览器有影响,所以我们多定义几个定时js

1.1K80

CSS做一个好看Loading加载效果

CSS确实是魅力大离谱,可能最近一段时间关注我文章会知道,我发了好多跟CSS有关文章了,有的是看到网上有这种效果,自己进行复刻,有的是利用一个自己刚看到知识点,运用它去做一些好玩东西,总之,CSS...今天给大家带来表演,创意起源于我博客友链页:Wangez-Blog(点击下方阅读全文可以访问到),如果他人头像我请求不到资源,那么就会补上一个吃豆人Loading上去,而这个吃豆人,就是我今天带来表演...css中即可(运用这个属性就行:animation),因为我是div套了div,所以我是伪元素来选择:分别是first-of-type和nth-child(2),选中了第一个跟第二个div来作为吃豆人嘴巴...ENJOY THE SUMMER 同样,我们在刚刚两个div同级地方,又建了三个div,我真是太喜欢div了~ 豆子相对于嘴巴来说就很简单,首先他是圆,其次呢,它动画是向左移动,具备这两个条件...接下来加上向左移动动画: @keyframes pacman-balls { 75% { opacity: 0.7; } 100% { -webkit-transform:

92340

commander做一个自己eslint脚手架

如今前端工程化,自动化已经成为了新趋势,如果我们要重新开始做一个项目,你会花费多久时间在前期环境搭建上呢?...在我们前端积累中,我们需要将这些技术沉淀下来,便于我们开始一个新项目,而不必花费过多经历在环境搭建中。...下面的时候,记得要加权限, chmod +x pre-commit pre-commit如何编写,相信网上有很多了,这里我给一个大概实现思路 首先是获取到你要eslint代码, JS_FILES...=$(git diff --cached --name-only --diff-filter=ACM | grep -E "(\.js?)...css)$") 然后调用自己eslint命令, oishi lintjs --exitcode $JS_FILES 最后判断返回值, 有一个小坑地方在于你入口文件处,你要声明一下自己node

90010

基于发布-订阅原生 JS 插件封装

原生 JS 封装一个动画插件。效果如下: ? 这个飞驰小球看起来是不是特有灵性呢?没错,它就是原生JS实现。 接下来,就让我们深入细节,体会其中奥秘。...并且,小球始终在不离开浏览器边界运动,碰到边界会有如图反弹效果。...二、梳理思路 分析这样一个过程,其中大致会经历一下关键步骤: 1、鼠标按下时,记录小球初始位置信息 2、鼠标按下后滑动,记录松开鼠标瞬间移动速度 3、鼠标松开后,在水平方向上,让小球根据刚刚记录移动速度进行匀减速运动...三、难点分析 看到这里,估计你思路清晰了不少,但可能还是有一些比较难以搞定问题。 首先,你怎么拿到松开手瞬间小球移动速度?如何去表达出这个加速度效果? 在实现方面,这是非常重要问题。...浏览器本身就是存在反应时间,你可以把它当做一个摄像机,在给 DOM 元素绑定了事件之后,每隔一段时间(一般非常短,根据不同浏览器厂商和电脑性能而定,这里我用到 chrome,保守估计为 20ms)会给这个元素拍张照

3.1K20

简单说 CSS做一个魔方旋转效果

说明 魔方大家应该是不会陌生,这次我们来一起CSS实现一个魔方旋转特效,先来看看效果图! ?...解释 我们要做这样效果,重点在于怎么把6张图片,摆放成魔方样子,而把它们摆放成魔方样子,重点在于用好CSStransform,这是非常重要,好,我们先拼出一个魔方样子。 效果图 ?...Transform字面上就是变形,改变意思。在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。...4、鼠标移入后样式 只是改变translateZ值,将位移距离再增加100px 到此,我们就弄出一个魔方了,至于最开始我们看到魔方中还有嵌套一个小魔方,就很容易了,把这个魔方六个面复制一下,然后粘贴到...总结 做这样一个效果,主要是为了练习,transform,这个效果重点就是搞明白每个面要旋转多少度,然后位移距离是一样(不是说取值是一样),明白了之后,做这个效果就很简单了,下方有完整代码!

1.2K20
领券