当前位置: 首页 > news >正文

做网站用什么语言简单小工厂如何找外贸公司合作

做网站用什么语言简单,小工厂如何找外贸公司合作,深圳龙岗区地图全图,网站后台数据处理编辑主要是做什么的啊增加功能 我方坦克在发射的子弹消亡后#xff0c;才能发射新的子弹。同时实现发多颗子弹 1#xff0c;在按下J键#xff0c;我们判断当前hero对象的子弹#xff0c;是否已经销毁2#xff0c;如果没有销毁#xff0c;就不去触发shotEnemyTank3#xff0c;如果已经销毁才能发射新的子弹。同时实现发多颗子弹 1在按下J键我们判断当前hero对象的子弹是否已经销毁2如果没有销毁就不去触发shotEnemyTank3如果已经销毁才去触发shotEnemyTank4如果要发射多颗子弹就使用Vector保存hero类5在绘制我方子弹时需要遍历Vector在按键J时再次调用shotEnemyTank6如果需要控制在我们的面板上最多只有5颗子弹用if语句进行判断即可hero类 Hero类 import java.util.Vector;//自己的坦克继承坦克父类 public class Hero extends Tank {//定义一个Shot对象表示一个射击线程Shot shot null;//可以发射多颗子弹VectorShot shots new Vector();public Hero(int x, int y) {super(x, y);}public void shotEnemyTank(){//发多颗子弹怎么办 控制在我们的面板上最多只有5颗子弹if (shots.size()5){return;}//创建Shot对象根据当前Hero对象的位置和方向来创建Shotswitch (getDirect()){//得到Hero对象方向case 0://上shot new Shot(getX()20,getY(),0);break;case 1://右shot new Shot(getX()60,getY()20,1);break;case 2://下shot new Shot(getX()20,getY()60,2);break;case 3://左shot new Shot(getX(),getY()20,3);break;}//把新创建的shot放入到shots中shots.add(shot);//启动我们的shot线程new Thread(shot).start();} } 画板类 改变keyPressed方法 //当某个键按下该方法会触发Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() KeyEvent.VK_W) {//上//改变坦克方向hero.setDirect(0);//让坦克动起来if (hero.getY()0){hero.moveUp();}} else if (e.getKeyCode() KeyEvent.VK_S) {//下hero.setDirect(2);if (hero.getY()60750){hero.moveDown();}} else if (e.getKeyCode() KeyEvent.VK_A) {//左hero.setDirect(3);if (hero.getX()0){hero.moveLeft();}} else if (e.getKeyCode() KeyEvent.VK_D) {//右hero.setDirect(1);if (hero.getX()601000)hero.moveRight();}//如果用户按下的是J就发射if (e.getKeyCode() KeyEvent.VK_J) {//判断hero的子弹是否销毁---发射一颗子弹if (hero.shotnull|| !hero.shot.isLive) {//线程销毁后不代表shot对象为空,所以还需要判断shot的声明周期才可以继续发子弹hero.shotEnemyTank();}//发射多颗子弹hero.shotEnemyTank();}//重绘repaint();}在paint方法中遍历Vector集合 Overridepublic void paint(Graphics g) {super.paint(g);//3通过画笔填充一个矩形区域 g.fillRect();g.fillRect(0, 0, 1000, 750);//填充矩形默认为黑色//画出自己的坦克drawTank(hero.getX(), hero.getY(), g, hero.getDirect(), 1); // drawTank(hero.getX() 100,hero.getY(),g,hero.getDirect(),0); // drawTank(hero.getX() 200,hero.getY(),g,hero.getDirect(),0); // drawTank(hero.getX() 300,hero.getY(),g,hero.getDirect(),1);//判断何时画子弹 // if (hero.shot ! null hero.shot.isLive true) { // g.setColor(Color.white); // g.draw3DRect(hero.shot.x, hero.shot.y, 1, 1, false); // // }//将hero的子弹集合shots遍历取出绘制for (int i 0; i hero.shots.size(); i) {Shot shot hero.shots.get(i);if (shot ! null shot.isLive true) {g.setColor(Color.white);g.draw3DRect(shot.x, shot.y, 1, 1, false);}else {//如果该shot对象已经无效就从shots集合中拿掉hero.shots.remove(shot);}}//如果bombs 集合中有对象就画出for (int i 0; i bombs.size(); i) {//取出来炸弹Bomb bomb bombs.get(i);//根据当前这个bomb对象的life值去画出对应的图片if (bomb.life 6) {g.drawImage(image1, bomb.x, bomb.y, 60, 60, this);} else if (bomb.life 3) {g.drawImage(image2, bomb.x, bomb.y, 60, 60, this);} else {g.drawImage(image3, bomb.x, bomb.y, 60, 60, this);}//让这个炸弹的生命值减少bomb.lifeDown();//如果 bomb life 为0 就从bombs的集合中删除if (bomb.life 0) {bombs.remove(bomb);}}//画出敌人的坦克for (int i 0; i enemyTanks.size(); i) {//从Vector取出坦克EnemyTank enemyTank enemyTanks.get(i);//判断当前坦克是否还存活if (enemyTank.isLive) {//当敌人坦克时存活的才画出该坦克drawTank(enemyTank.getX(), enemyTank.getY(), g, enemyTank.getDirect(), 0);//画出 enemyTank 所有子弹for (int j 0; j enemyTank.shots.size(); j) {//取出子弹Shot shot enemyTank.shots.get(j);//绘制if (shot.isLive) {//isLivetrueg.setColor(Color.white);g.draw3DRect(shot.x, shot.y, 1, 1, false);} else {//从Vector 移除enemyTank.shots.remove(shot);}}}}}让敌人坦克发射的子弹消亡后可以再发射子弹 1在敌人坦克类中的run方法中判断 Vector集合的数量2如果仍然存活且数量小于1则执行相关业务代码 //敌人坦克 public class EnemyTank extends Tank implements Runnable {//给敌人坦克类使用Vector 保存多个ShotVectorShot shots new Vector();//定义敌人坦克的存货属性boolean isLive true;public EnemyTank(int x, int y) {super(x, y);}Overridepublic void run() {while (true) {//这里我们判断如果shots size 0; 创建一颗子弹放入到shots集合并启动if (isLiveshots.size()1){Shot s null;//判断坦克的方向创建对应的子弹switch (getDirect()){case 0:snew Shot(getX()20,getY(),0);case 1:snew Shot(getX()60,getY()20,0);case 2:snew Shot(getX()20,getY()60,0);case 3:snew Shot(getX(),getY()20,0);}shots.add(s);new Thread(s).start();}switch (getDirect()) {//根据坦克的方向来进行移动case 0://向上//让坦克保持一个方向走30步for (int i 0; i 30; i) {if (getY()0){moveUp();}//休眠50好眠try {Thread.sleep(50);} catch (InterruptedException e) {throw new RuntimeException(e);}}break;case 1://向右//让坦克保持一个方向走30步for (int i 0; i 30; i) {if (getX()601000){moveRight();}//休眠50好眠try {Thread.sleep(50);} catch (InterruptedException e) {throw new RuntimeException(e);}}break;case 2://向下//让坦克保持一个方向走30步for (int i 0; i 30; i) {if (getY()60750){moveDown();}//休眠50好眠try {Thread.sleep(50);} catch (InterruptedException e) {throw new RuntimeException(e);}}break;case 3://向左//让坦克保持一个方向走30步for (int i 0; i 10; i) {if (getX()0){moveLeft();}//休眠50好眠try {Thread.sleep(50);} catch (InterruptedException e) {throw new RuntimeException(e);}}break;}//休眠50好眠try {Thread.sleep(50);} catch (InterruptedException e) {throw new RuntimeException(e);}// 然后随机的改变坦克方向0-3setDirect((int) (Math.random() * 4)); //0-3//一旦写并发程序一定要考虑清楚该线程什么时候结束if (!isLive) {break;}}} } 当敌人的坦克击中我方坦克时我方坦克消失并出现爆炸效果 1编写方法判断敌人坦克是否击中我方坦克2在run方法中调用该方法 //画板类 public class MyPanel extends JPanel implements KeyListener, Runnable {//定义我的坦克Hero hero null;//定义敌人坦克放入到Vector线程安全可以有多个VectorEnemyTank enemyTanks new Vector();int enemyTankSize 3;//定义一个Vector用于存放炸弹炸弹既不属于我方坦克也不属于地方坦克 所以坦克放在画板类//当我们的子弹击中坦克时就加入一个Bomb对象到bombsVectorBomb bombs new Vector();//定义三张炸弹图片用于显示爆炸效果Image image1 null;Image image2 null;Image image3 null;public MyPanel() {//初始化自己的坦克hero new Hero(100, 100);hero.setSpeed(5);//初始化敌人的坦克for (int i 0; i enemyTankSize; i) {//创建一个敌人的坦克EnemyTank enemyTank new EnemyTank(100 * (i 1), 0);//启动敌人坦克线程让他动起来new Thread(enemyTank).start();//设置方向enemyTank.setDirect(2);//给该enemyTank 加入一颗子弹Shot shot new Shot(enemyTank.getX() 20, enemyTank.getY() 60, enemyTank.getDirect());enemyTank.shots.add(shot);//启动shot对象new Thread(shot).start();//把敌人的坦克加入的总的坦克对象中enemyTanks.add(enemyTank);} // image1 Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(/1.gif)); // image2 Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(/2.gif)); // image3 Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(/3.gif));//初始化照片对象image1 new ImageIcon(image/1.gif).getImage();image2 new ImageIcon(image/2.gif).getImage();image3 new ImageIcon(image/3.gif).getImage();}Overridepublic void paint(Graphics g) {super.paint(g);//3通过画笔填充一个矩形区域 g.fillRect();g.fillRect(0, 0, 1000, 750);//填充矩形默认为黑色if (hero ! null hero.isLive){//画出自己的坦克drawTank(hero.getX(), hero.getY(), g, hero.getDirect(), 1);} // drawTank(hero.getX() 100,hero.getY(),g,hero.getDirect(),0); // drawTank(hero.getX() 200,hero.getY(),g,hero.getDirect(),0); // drawTank(hero.getX() 300,hero.getY(),g,hero.getDirect(),1);//判断何时画子弹 // if (hero.shot ! null hero.shot.isLive true) { // g.setColor(Color.white); // g.draw3DRect(hero.shot.x, hero.shot.y, 1, 1, false); // // }//将hero的子弹集合shots遍历取出绘制for (int i 0; i hero.shots.size(); i) {Shot shot hero.shots.get(i);if (shot ! null shot.isLive true) {g.setColor(Color.white);g.draw3DRect(shot.x, shot.y, 1, 1, false);}else {//如果该shot对象已经无效就从shots集合中拿掉hero.shots.remove(shot);}}//如果bombs 集合中有对象就画出for (int i 0; i bombs.size(); i) {//取出来炸弹Bomb bomb bombs.get(i);//根据当前这个bomb对象的life值去画出对应的图片if (bomb.life 6) {g.drawImage(image1, bomb.x, bomb.y, 60, 60, this);} else if (bomb.life 3) {g.drawImage(image2, bomb.x, bomb.y, 60, 60, this);} else {g.drawImage(image3, bomb.x, bomb.y, 60, 60, this);}//让这个炸弹的生命值减少bomb.lifeDown();//如果 bomb life 为0 就从bombs的集合中删除if (bomb.life 0) {bombs.remove(bomb);}}//画出敌人的坦克for (int i 0; i enemyTanks.size(); i) {//从Vector取出坦克EnemyTank enemyTank enemyTanks.get(i);//判断当前坦克是否还存活if (enemyTank.isLive) {//当敌人坦克时存活的才画出该坦克drawTank(enemyTank.getX(), enemyTank.getY(), g, enemyTank.getDirect(), 0);//画出 enemyTank 所有子弹for (int j 0; j enemyTank.shots.size(); j) {//取出子弹Shot shot enemyTank.shots.get(j);//绘制if (shot.isLive) {//isLivetrueg.setColor(Color.white);g.draw3DRect(shot.x, shot.y, 1, 1, false);} else {//从Vector 移除enemyTank.shots.remove(shot);}}}}}/*int x 坦克的横坐标int y 坦克的纵坐标Graphics g 画笔int direct 坦克的方向int type 坦克的类型*/public void drawTank(int x, int y, Graphics g, int direct, int type) {switch (type) {case 0://敌人的坦克g.setColor(Color.cyan);break;case 1://我的坦克g.setColor(Color.yellow);break;}//根据坦克的方向来绘制坦克//direct表示方法 0向上 1向右 2向下 3向左switch (direct) {case 0://表示向上g.fill3DRect(x, y, 10, 60, false);//画出坦克左边轮子g.fill3DRect(x 30, y, 10, 60, false);//画出坦克右边轮子g.fill3DRect(x 10, y 10, 20, 40, false);//画出坦克盖子g.fillOval(x 10, y 20, 20, 20);//画出圆形盖子g.drawLine(x 20, y 30, x 20, y);//画出炮筒break;case 1://表示向右g.fill3DRect(x, y, 60, 10, false);//画出坦克上边轮子g.fill3DRect(x, y 30, 60, 10, false);//画出坦克下边轮子g.fill3DRect(x 10, y 10, 40, 20, false);//画出坦克盖子g.fillOval(x 20, y 10, 20, 20);//画出圆形盖子g.drawLine(x 30, y 20, x 60, y 20);//画出炮筒break;case 2://表示向下g.fill3DRect(x, y, 10, 60, false);//画出坦克左边轮子g.fill3DRect(x 30, y, 10, 60, false);//画出坦克右边轮子g.fill3DRect(x 10, y 10, 20, 40, false);//画出坦克盖子g.fillOval(x 10, y 20, 20, 20);//画出圆形盖子g.drawLine(x 20, y 30, x 20, y 60);//画出炮筒break;case 3://表示向左g.fill3DRect(x, y, 60, 10, false);//画出坦克上边轮子g.fill3DRect(x, y 30, 60, 10, false);//画出坦克下边轮子g.fill3DRect(x 10, y 10, 40, 20, false);//画出坦克盖子g.fillOval(x 20, y 10, 20, 20);//画出圆形盖子g.drawLine(x 30, y 20, x, y 20);//画出炮筒break;default:System.out.println(暂时没有处理);}}//编写方法判断敌人坦克是否击中我方坦克public void hitHero(){//遍历所有的敌人坦克for (int i 0; i enemyTanks.size(); i) {//取出敌人坦克EnemyTank enemyTank enemyTanks.get(i);//遍历enemyTank 对象的所有子弹for (int j 0; j enemyTank.shots.size(); j) {//取出子弹Shot shot enemyTank.shots.get(j);//判断shot 是否击中我的坦克if (hero.isLiveshot.isLive){hitTank( shot,hero);}}}}public void hitEnemy(){//判断我们的子弹是否击中了敌人坦克if (hero.shot ! null hero.shot.isLive) {//当我方的子弹还存活//遍历敌人所有的坦克for (int i 0; i enemyTanks.size(); i) {EnemyTank enemyTank enemyTanks.get(i);hitTank(hero.shot, enemyTank);}}}//编写方法判断我方子弹是否击敌人坦克//什么时候判断我方坦克是否击中敌人坦克 run方法public void hitTank(Shot s, Tank tank) {//判断s 击中坦克switch (tank.getDirect()) {case 0://敌人坦克向上case 2://敌人坦克向下if (s.x tank.getX() s.y tank.getY() 40 s.y tank.getY() s.y tank.getY() 60) {s.isLive false;tank.isLive false;//当我的子弹击中敌人坦克后将enenmyTank 从Vector 拿掉enemyTanks.remove(tank);//这里敌人坦克被击中//创建Bomb对象加入到bombs集合Bomb bomb new Bomb(tank.getX(), tank.getY());bombs.add(bomb);}break;case 1://敌人坦克向右case 3://敌人坦克向下if (s.x tank.getX() s.y tank.getY() 60 s.y tank.getY() s.y tank.getY() 40) {s.isLive false;tank.isLive false;Bomb bomb new Bomb(tank.getX(), tank.getY());bombs.add(bomb);}break;}}//有字符输出时该方法就会触发Overridepublic void keyTyped(KeyEvent e) {}//当某个键按下该方法会触发Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() KeyEvent.VK_W) {//上//改变坦克方向hero.setDirect(0);//让坦克动起来if (hero.getY()0){hero.moveUp();}} else if (e.getKeyCode() KeyEvent.VK_S) {//下hero.setDirect(2);if (hero.getY()60750){hero.moveDown();}} else if (e.getKeyCode() KeyEvent.VK_A) {//左hero.setDirect(3);if (hero.getX()0){hero.moveLeft();}} else if (e.getKeyCode() KeyEvent.VK_D) {//右hero.setDirect(1);if (hero.getX()601000)hero.moveRight();}//如果用户按下的是J就发射if (e.getKeyCode() KeyEvent.VK_J) {//判断hero的子弹是否销毁---发射一颗子弹if (hero.shotnull|| !hero.shot.isLive) {//线程销毁后不代表shot对象为空,所以还需要判断shot的声明周期才可以继续发子弹hero.shotEnemyTank();}//发射多颗子弹hero.shotEnemyTank();}//重绘repaint();}//当某个键释放(松开)该方法会触发Overridepublic void keyReleased(KeyEvent e) {}//添加线程的方法确保子弹可以重绘Overridepublic void run() {//每隔 100毫秒重绘区域刷新绘图区域子弹就移动while (true) {try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}//判断我们坦克是否击中别人hitEnemy();//判断敌人坦克是否击中我们hitHero();this.repaint();}} }
文章转载自:
http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn
http://www.morning.nhpmn.cn.gov.cn.nhpmn.cn
http://www.morning.llcsd.cn.gov.cn.llcsd.cn
http://www.morning.mqxzh.cn.gov.cn.mqxzh.cn
http://www.morning.nqwz.cn.gov.cn.nqwz.cn
http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn
http://www.morning.mgbsp.cn.gov.cn.mgbsp.cn
http://www.morning.cklld.cn.gov.cn.cklld.cn
http://www.morning.rnzwh.cn.gov.cn.rnzwh.cn
http://www.morning.kgjyy.cn.gov.cn.kgjyy.cn
http://www.morning.wscfl.cn.gov.cn.wscfl.cn
http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn
http://www.morning.kqqk.cn.gov.cn.kqqk.cn
http://www.morning.lgtzd.cn.gov.cn.lgtzd.cn
http://www.morning.ypcbm.cn.gov.cn.ypcbm.cn
http://www.morning.jykzy.cn.gov.cn.jykzy.cn
http://www.morning.kpcjl.cn.gov.cn.kpcjl.cn
http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn
http://www.morning.yszrk.cn.gov.cn.yszrk.cn
http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn
http://www.morning.chzqy.cn.gov.cn.chzqy.cn
http://www.morning.ymwcs.cn.gov.cn.ymwcs.cn
http://www.morning.ppqzb.cn.gov.cn.ppqzb.cn
http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn
http://www.morning.blznh.cn.gov.cn.blznh.cn
http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn
http://www.morning.znrgq.cn.gov.cn.znrgq.cn
http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn
http://www.morning.xhpnp.cn.gov.cn.xhpnp.cn
http://www.morning.jmwrj.cn.gov.cn.jmwrj.cn
http://www.morning.bpzw.cn.gov.cn.bpzw.cn
http://www.morning.hhpbj.cn.gov.cn.hhpbj.cn
http://www.morning.spbp.cn.gov.cn.spbp.cn
http://www.morning.dfkmz.cn.gov.cn.dfkmz.cn
http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn
http://www.morning.pynzj.cn.gov.cn.pynzj.cn
http://www.morning.gmmyn.cn.gov.cn.gmmyn.cn
http://www.morning.gyrdn.cn.gov.cn.gyrdn.cn
http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn
http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn
http://www.morning.cthkh.cn.gov.cn.cthkh.cn
http://www.morning.rkbly.cn.gov.cn.rkbly.cn
http://www.morning.hwlmy.cn.gov.cn.hwlmy.cn
http://www.morning.dmchips.com.gov.cn.dmchips.com
http://www.morning.rrms.cn.gov.cn.rrms.cn
http://www.morning.srkwf.cn.gov.cn.srkwf.cn
http://www.morning.mqzcn.cn.gov.cn.mqzcn.cn
http://www.morning.jyknk.cn.gov.cn.jyknk.cn
http://www.morning.ljfjm.cn.gov.cn.ljfjm.cn
http://www.morning.mxnfh.cn.gov.cn.mxnfh.cn
http://www.morning.djxnw.cn.gov.cn.djxnw.cn
http://www.morning.qpsdq.cn.gov.cn.qpsdq.cn
http://www.morning.wsnjn.cn.gov.cn.wsnjn.cn
http://www.morning.zrjzc.cn.gov.cn.zrjzc.cn
http://www.morning.zwwhq.cn.gov.cn.zwwhq.cn
http://www.morning.wklhn.cn.gov.cn.wklhn.cn
http://www.morning.trpq.cn.gov.cn.trpq.cn
http://www.morning.hwxxh.cn.gov.cn.hwxxh.cn
http://www.morning.ndmbd.cn.gov.cn.ndmbd.cn
http://www.morning.cplym.cn.gov.cn.cplym.cn
http://www.morning.rxydr.cn.gov.cn.rxydr.cn
http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn
http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn
http://www.morning.nwynx.cn.gov.cn.nwynx.cn
http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn
http://www.morning.qkrqt.cn.gov.cn.qkrqt.cn
http://www.morning.ntkpc.cn.gov.cn.ntkpc.cn
http://www.morning.easiuse.com.gov.cn.easiuse.com
http://www.morning.tddrh.cn.gov.cn.tddrh.cn
http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn
http://www.morning.skksz.cn.gov.cn.skksz.cn
http://www.morning.gjlml.cn.gov.cn.gjlml.cn
http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn
http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn
http://www.morning.rkzb.cn.gov.cn.rkzb.cn
http://www.morning.kqgqy.cn.gov.cn.kqgqy.cn
http://www.morning.lbhck.cn.gov.cn.lbhck.cn
http://www.morning.kjmws.cn.gov.cn.kjmws.cn
http://www.morning.wbllx.cn.gov.cn.wbllx.cn
http://www.morning.jxpwr.cn.gov.cn.jxpwr.cn
http://www.tj-hxxt.cn/news/269092.html

相关文章:

  • 珠海有什么好的网站推广公司系统难还是网站设计难做
  • 长垣有做网站设计的吗国外浏览器
  • 开发外包网站做详情页生成代码的网站
  • 网站做好了如何发布用织梦做的公司网站 经常被攻击
  • 商洛网站建设公司wordpress简码
  • 淘宝网站上的图片是怎么做的外贸在线网站建站
  • 常州网站建设智博像wordpress
  • 做网站卖钱入门编程软件
  • 网站的建设费用预算大二网络营销实训报告
  • 当当网的网站建设目标是wordpress设置文章页关键词
  • 溧阳网站设计网络营销的营销方式
  • 织梦xml网站地图线上商城的推广方案
  • 高中生自己做网站网站开发的需求分析书
  • 如何在网站页面添加代码百度指数网址是什么
  • 免费个人logo设计网站免费app网站下载大全
  • 网站建设哪里最好接单子网页设计网站开发教程
  • 织梦技术网站模版成都app开发制作
  • wordpress发送文章链接过期快速排名生客seo
  • 贺州同城购物网站建设校园网自助网站
  • 网站开发维护求职信什么是网站域名?
  • c 做网站session用法做优秀企业网站
  • 拖鞋设计网站推荐wordpress文章表
  • 网站申请专利网站推广员能力要求
  • 网站工程师培训wordpress 随机标签
  • 万网域名注册官网的阿里云嘉兴网站制作优化
  • 过期的网站域名万能网页编辑器
  • 临沂建设大型网站建设国家企业信息系统公示查询
  • 深圳建站定制公司网页制作app手机版
  • 新网站建设服务做化妆招生宣传在那些网站可以做
  • 做网站手机版长春网站网站建设