
《屏幕画笔》百度网盘免费资源下载:
Pointofix是个很有趣的免费小程序,它可以让我们直接在屏幕上画圈圈、线头、标箭头或打字,方便把整个电脑屏幕当做是个电子白板(或黑板),直接用各种线条、圈圈或箭头、勾勾。。等符号,在屏幕的窗口、图案、各种图表中乱涂鸦或做各种标示,拿来当做上课、演讲或做简报时使用,也相当方便。
小程序上线后,改版了很多次,包括一些 Api 接口也有改动。如果你学习一个很久之前的小程序项目是没有意义的,本文推荐的小程序都是最近有更新的。相信在你学习、部署的过程中,不会遇到很多问题。
本文推荐的项目从入门到进阶都有,收藏起来吧。
02 小程序书店
技术栈:Taro + Taro UI + Redux + Webpack + ES6 + Mock。这个项目可以作为你第一个小程序练手项目。
这个小程序非常简单,可以作为初学者第一个实战项目。帮助新手理解 Taro 与 Redux 的配合方式与 Taro 的基本使用。本项目还提供了一个快速搭建本地 mock 服务的解决方案。
除此之外,这个项目还提供了学习文档:
03 高仿喜马拉雅
如果你仅仅有 HTML CSS Js 的知识储备,想开发一个属于自己的小程序,这个 Demo 再适合你不过了,这个高仿喜马拉雅是一个初级项目完全使用微信小程序原生开发,没有使用自定义组件,非常的适合微信小程序开发新手。
04 网易云音乐小程序
基于Taro与网易云音乐 api 开发,技术栈主要是:typescript+taro+taro-ui+redux+react-hooks。
目前主要是着重小程序端的展示,主要也是借此项目强化下上述几个技术栈的使用,打造一个最佳实践项目,通过这个项目也可以帮助你快速使用 Taro 开发一个属于你自己的小程序。
这是该小程序实现的一些功能:
小程序 GitHub Trending Hub 是一个以 Feed 流形式查看 GitHub Trending 仓库集合的工具,通过它可以及时查看最近更新的热门仓库。
刚刚提及的项目适合新手入门,这个小程序适合进阶选手。这个程序涉及很多组件的使用比如:
07 情书站点
第一个项目是校园小情书的微信小程序,该项目功能包括表白墙、树洞、校园论坛。
下载。
是一个可以陪你逛博物馆的小程序,里面有各种景点、博物馆的文字介绍,也有很多精彩的可以浏览。如果不想看文字也可以选择语音听专业讲解人的介绍,语音是免费的哦。如果正好有旅行的打算,就可以在古猫里提前了解一番。
看名字你也许还猜不到,其实这是一个买卖二手书的小程序。可将自己闲置的书扫码,查看是否可回收。如果是可回收的书,他们会安排快递上门取件,你只要选择到付就可以了。里面有豆瓣评分、特价区,购书价格比较优惠。还可以看到书友的推荐和点评,方便自己找到感兴趣的书。
四、天天跟我买
是一个方便购物的小程序。虽然网购很方便,但是网购多了就会发现,为什么同一件商品在不同的购物平台的价格还不一样。特别是在各种节假日大促时期,为了找到最优价,翻遍了各种软件货比三家,既耗费了时间还常常看得头晕眼花的也拿不定主意。这个小程序就是帮你搜罗了各个购物平台上正在做活动的商品,如果正好有想要买的商品,就可以直接下单了。直接下单他们会收取一点手续费,你也可以充值会员免手续费。
沃尔玛超市物品种类齐全,经常逛起来不知不觉就买了很多,走到收银台才发现早已排满了人。如果赶上节假日,排个队少说也要十几二十分钟。不过沃尔玛现在出了自己的小程序,只要扫入选中的物品的条形码,即可用微信或支付宝付款,省去排队的时间。如果买的东西很多,可以勾选塑料袋一并付款。 *** 作起来简单方便。
六、微信辟谣助手
你的朋友圈是不是经常会看到别人转发的“什么食物和什么食物不能一起吃”、“什么食物吃多了会致癌”等等,那么这些到底是真是假呢?这时可以输入关键字在这里面搜索,可以看到对相关信息的判定,还会有详细的说明。如果有人给你传谣,你就可以用这个击破他们的谣言。
这是一个抢答题的游戏小程序,里面包含了各个方面的知识。可以选择自己感兴趣的范围,一步步闯关。闲暇之余玩一下,还能增长知识。
最后推荐的是一个关于吃的小程序。肯德基这个可以在店里自助点餐,也可以预约点餐,到店之后再取餐。如果宅在家里,还可以宅急便送餐,可以说是很方便了。
场景:画图应用需选择画笔颜色,有4种颜色按钮可供选择,用户点击任意按钮进行颜色切换。
思路:通过curColorIndex变量保存当前选中的颜色下标,选中后添加额外的选中样式
一,canvaswxss文件:这个文件用于定义按钮正常态和选中态的样式,以及Flex
布局的约束
二,canvaswxml文件:这个文件是Demo的布局界面,通过使用js的data数据和wxss的class样式进行页面布局
这里通过wx:for实现循环打印颜色数组,通过curColorIndex值控制选中的样式,index值进行参数传递
三,canvasjs文件:提供数据,以及处理xwml的控件响应,并通过设置thissetData的值来更新xwml的显示
原文地址: >
直接复制以前写的小程序 源码给你。
你自己看看吧。
package combjsxttank;
import javaappletApplet;
import javaappletAppletContext;
import javaappletAppletStub;
import javaappletAudioClip;
import javaawtColor;
import javaawtFrame;
import javaawtGraphics;
import javaawtImage;
import javaawtToolkit;
import javaawteventKeyAdapter;
import javaawteventKeyEvent;
import javaawteventWindowAdapter;
import javaawteventWindowEvent;
import javaioIOException;
import javanetMalformedURLException;
import javanetURL;
import javautilArrayList;
import javautilList;
import javautilProperties;
/
这个类的作用是坦克游戏的主窗口
@author shenzhuan
/
public class TankClient extends Applet{ //Frame ,
/
整个坦克游戏的宽度
/
AudioClip audio;
AudioClip audioStart;
public static final int GAME_WIDTH = IntegerparseInt(PropertyMgrgetProperty("GameWidth"));
public static final int GAME_HEIGHT = IntegerparseInt(PropertyMgrgetProperty("GameHeight"));
private static final String Blood = null;
private static int lev = 1;
private static Toolkit tk = ToolkitgetDefaultToolkit();
//草地 与 墙的
private static Image glassImages = tkgetImage(TankclassgetClassLoader()getResource("images/glassgif"));
private static Image wallImages = tkgetImage(TankclassgetClassLoader()getResource("images/wallgif"));
/
画出自己的坦克
原:Dir 为STOP 启动游戏后需点击我界面 方能控制移动-》》》修改为U 依旧需要点击方加入监听
/
Tank myTank = new Tank(500,500,true,DirectionSTOP,this);
/
定义几道墙
/
ImageBySrc wallOne = new ImageBySrc(wallImages,100,200,50,50),
wallTwo = new ImageBySrc(wallImages,250,450,400,5),
wallThree = new ImageBySrc(wallImages,700,700,15,200),
wallFour = new ImageBySrc(wallImages,800,800,100,100),
wallFive = new ImageBySrc(wallImages,160,260,5,150),
glassOne = new ImageBySrc(glassImages,200,290,100,50);
List<Explode> explodes = new ArrayList<Explode> ();
List<Missile> missiles = new ArrayList<Missile> ();
List<Tank> tanks = new ArrayList<Tank>();
Image offScreenImage = null;
Blood_bak b = new Blood_bak();
public void paint(Graphics g) {
/
显示子d-爆炸-坦克数量
以及坦克生命值
/
gdrawString("missiles count:"+missilessize(), 10, 50);
gdrawString("explodes count:"+explodessize(),10, 70) ;
gdrawString("enemey count:"+tankssize(),10, 100) ;
gdrawString("myTank's life:"+myTankgetLife(),10, 110) ;
/
这里指定当敌方坦克数目为零时
再次添加敌方坦克数目
/
while(tankssize() <=0 ) {
audioStartplay();
if(lev == 1){
for(int i=0; i<IntegerparseInt(PropertyMgrgetProperty("reProduseTankCount1")); i++) {
tanksadd(new Tank(10+65(i+5),100,false,DirectionD,this));
}
lev ++;
Systemoutprintln("第"+lev+"关");
}else if(lev ==2 ){
for(int i=0; i<IntegerparseInt(PropertyMgrgetProperty("reProduseTankCount2")); i++) {
tanksadd(new Tank(10+65(i+7),950,false,DirectionR,this));
}
lev ++;
Systemoutprintln("第"+lev+"关");
}else if(lev ==3 ){
for(int i=0; i<IntegerparseInt(PropertyMgrgetProperty("reProduseTankCount3")); i++) {
tanksadd(new Tank(10+80(i+5),850,false,DirectionL,this));
}
lev ++;
Systemoutprintln("第"+lev+"关");
}else if(lev ==4 ){
for(int i=0; i<IntegerparseInt(PropertyMgrgetProperty("reProduseTankCount4")); i++) {
tanksadd(new Tank(10+80(i+5),850,false,DirectionL,this));
}
lev ++;
Systemoutprintln("第"+lev+"关");
}else {
for(int i=0; i<IntegerparseInt(PropertyMgrgetProperty("reProduseTankCount5")); i++) {
tanksadd(new Tank(10+80(i+5),850,false,DirectionL,this));
}
lev ++;
Systemoutprintln("第"+lev+"关");
}
}
/
子d类的加入
打击坦克
能否穿墙
/
for(int i=0; i<missilessize(); i++) {
Missile m = missilesget(i);
mhitTanks(tanks);
mhitTank(myTank);
mhitWall(wallOne);
mhitWall(wallTwo);
mhitWall(wallThree);
mhitWall(wallFour);
//mhitWall(w6);
mdraw(g);
/ 如果保留下面方法一次两子d
if(!misLive()) missilesremove(m);
else mdraw(g);
/
}
for(int i=0; i<explodessize(); i++) {
Explode e = explodesget(i);
edraw(g);
}
/
敌方坦克
能否穿墙
/
for(int i=0; i<tankssize(); i++) {
Tank t = tanksget(i);
tcollidesWithWall(wallOne);
tcollidesWithWall(wallTwo);
tcollidesWithWall(wallThree);
//tcollidesWithWall(w4);
tcollidesWithWall(wallFive);
tcollidesWithWall(glassOne);
//tcollidesWithTanks(tanks);
//不能穿墙
//tcollidesWithWall(wallImages);
tdraw(g);
}
/
下面方法让自己坦克 根据敌方坦克多少迅移
/
for(int i=0; i<tankssize(); i++) {
Tank t = myTank;
tdraw(g);
}
/
我方坦克的加入
以及画出各种墙
/
myTankdraw(g);
myTankeat(b);
//w1draw(g);
//w2draw(g);
//w3draw(g);
////w4draw(g);
//w5draw(g);
//w6draw(g);
bdraw(g);
//右上两块草与墙
gdrawImage(wallOnewallImages, wallOnex, wallOney, wallOnew, wallOneh , null);
gdrawImage(glassOnewallImages, glassOnex, glassOney, glassOnew, glassOneh , null);
//
//画 草地与墙图
gdrawImage(glassImages,500,100,null);
gdrawImage(glassImages,660,170,null);
gdrawImage(glassImages,800,300,null);
gdrawImage(glassImages,850,370,null);
gdrawImage(wallImages,400,500,null);
gdrawImage(wallImages,600,500,null);
gdrawImage(wallImages,550,500,20,20,null);
//gdraw3DRect(100, 100, 55 , 55,true);
//gdraw3DRect(100, 200, 55 , 55,false);
}
/
图像闪烁的处理
画图
颜色
关闭键
可见
/
public void update(Graphics g) {
if(offScreenImage == null) {
offScreenImage = thiscreateImage(GAME_WIDTH,GAME_HEIGHT);
}
Graphics gOffScreen = offScreenImagegetGraphics();
Color c = gOffScreengetColor();
gOffScreensetColor(ColordarkGray);
gOffScreenfillRect(0,0,GAME_WIDTH,GAME_HEIGHT);
gOffScreensetColor(c);
paint(gOffScreen);
gdrawImage(offScreenImage,0,0,null);
}
/
本方法显示坦克主窗口
一开始添加敌方坦克数目
/
public void init() {
//声音所需
audio = getAudioClip(getDocumentBase(), "config\\DjMusicwav"); // startMusicmid
audioStart = getAudioClip(getDocumentBase(), "config\\startMusicmid"); // startMusicmid
audioloop();
Properties props = new Properties();
try {
propsload(thisgetClass()getClassLoader()getResourceAsStream("config/tankproperties"));
} catch (IOException e1) {
e1printStackTrace();
}
int initTankCount =IntegerparseInt(PropertyMgrgetProperty("initTankCount"));
for(int i=0; i<initTankCount; i++) {
tanksadd(new Tank(40+100(i+2),100,false,DirectionD,this));
}
/
设置游戏窗口属性
/
thissetLocation(1,1);
thissetSize(GAME_WIDTH,GAME_HEIGHT);
//thissetTitle("坦克大战");
/
设置可关闭按钮
不可改变大小
颜色
关闭键
可见
/
//thisaddWindowListener(new WindowAdapter(){
////重写父类的方法 双击右键source- override Implements methods
//public void windowClosing(WindowEvent e) {
//Systemexit(0);
//}
//});
//thissetResizable(false);
thissetBackground(ColorBLACK);
thisaddKeyListener(new KeyMonitor());
setVisible(true);
new Thread(new PaintThread())start();
}
//声音所需
private class PaintThread implements Runnable{
/
所有成员动的速度
/
public void run() {
while(true) {
repaint();
try {
Threadsleep(100);
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
}
/
KeyMonitor键盘的引入
@author shenzhuan
我方坦克方向键控制方向
/
private class KeyMonitor extends KeyAdapter {
public void keyReleased(KeyEvent e) {
myTankkeyReleased(e);
}
public void keyPressed(KeyEvent e) {
myTankkeyPressed(e);
}
}
/
main方法
@param args
/
public static void main(String[] args) {
TankClient tc = new TankClient();
tcinit();
}
}
以上就是关于请问有屏幕画笔(Pointofix) V1.8.0 绿色版软件免费百度云资源吗全部的内容,包括:请问有屏幕画笔(Pointofix) V1.8.0 绿色版软件免费百度云资源吗、盘点 7 个超棒的微信小程序项目、八个实用的微信小程序推荐等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)