如果你只偷了一级页面,那页面上的链接所指向的内容很有可能是原站的。点了以后就回原站了。
一般情况下,会进行三级深度的扫描。
扫描完一个页面后,将页面上的所有图片,JS等内容下载到本地指定的路径里,将扫描完的页面代码中的资源路径进行替换。
然后进入二级页面,继续上一步的 *** 作。不同的是,将页面内容存下来后,将上级页面中的链接指向该页面。
这样就完整了。
很简单的一个实现,首先,因为游戏板是JAVA做的,所以用swing“画出”类似于棋盘的网格(可以根据需要选择是否显示)
用paint方法在panel加载时就画出(即放到构造器里)
由于知道网格的具体参数(梅格长宽这里假设为1) 可以随即生成两个整数,那就是小偷的坐标,用paint方法在那个坐标处画出“小偷” X,Y可以随即加减 小偷就随即动了。
写出asdw四个键盘的按下事件分别是 对应的坐标加减。
在逮捕小偷时 从游戏板固定位置出现“球员” 用line的方式移动 (即 求出斜率,X,Y坐标按斜率移动至小偷) 重置游戏!
import java.awt.*
8import javax.swing.*
9import java.util.*
10
11//创建警察类
12class Police implements Runnable{
13 private int px,py
14 public static int zhua = 0
15 Test t
16 Police(Test t){
17 this.t = t
18 px = 30
19 py = 30
20 }
21 public void run(){
22 while(true){
23 //synchronized(t){
24 if(zhua == 0){
25 px++
26 py++
27 }
28 else{
29 if(px <t.thief.getTx()){
30 px++
31 }
32 if(py <t.thief.getTy()){
33 py++
34 }
35 }
36 try{
37 Thread.sleep(50)
38 }catch(InterruptedException e){}
39 //}
40 t.repaint()
41 }
42 }
43 public int getPx(){
44 return px
45 }
46 public int getPy(){
47 return py
48 }
49}
50
51//创建小偷类
52class Thief implements Runnable{
53 private int tx,ty
54 public static int tao = 0
55 Test t
56 Thief(Test t){
57 this.t = t
58 tx = 300
59 ty = 300
60 }
61 public void run(){
62 while(true){
63 //synchronized(t){
64 if(tao == 0){
65 tx--
66 ty--
67 }
68 else{
69 tx++
70 }
71 try{
72 Thread.sleep(100)
73 }catch(InterruptedException e){}
74 //}
75 t.repaint()
76 }
77 }
78 public int getTx(){
79 return tx
80 }
81 public int getTy(){
82 return ty
83 }
84}
85
86//测试类
87public class Test extends JFrame{
88 private Container c
89 public Police police
90 public Thief thief
91 Thread p,t
92 int a =0
93 private Vector vt
94 Test(){
95 super("老鹰抓小鸡")
96 c = getContentPane()
97
98 vt = new Vector()//用来存储小偷逃跑坐标
99 police = new Police(this)
100 thief = new Thief(this)
101 p = new Thread(police)
102 t = new Thread(thief)
103 p.start()
104 t.start()
105
106 setSize(400,400)
107 setLocation(200,200)
108 setVisible(true)
109 }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)