你的程序主要是因?yàn)镸yPanel覆蓋了MyFrame,把監(jiān)聽移到MyPanel上,并讓它獲得焦點(diǎn)(用this.requestFocus();語句),鍵盤控制就可以運(yùn)行了.
成都創(chuàng)新互聯(lián)專注于歷下網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供歷下營銷型網(wǎng)站建設(shè),歷下網(wǎng)站制作、歷下網(wǎng)頁設(shè)計(jì)、歷下網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造歷下網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供歷下網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
另外,你的Image獲取方式有一點(diǎn)問題,我給你都改成new ImageIcon(imgpath).getImage()的形式了.
其它的改動都是小地方,你對照著原程序一看就知道了.
改完后,完整的程序如下:
//MyFrame.java文件
import javax.swing.JFrame;
public class MyFrame extends JFrame{
MyPanel mp=null;
public void lostFrame(){
mp=new MyPanel();
this.setTitle("雷霆戰(zhàn)機(jī)");
this.setLocation(10, 10);
this.setVisible(true);
this.setSize(500,500);
this.add(mp);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
//PlaneGame.java文件
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
//主窗口
public class PlaneGame{
public static void main(String[] args) {
new MyFrame().lostFrame();
}
}
//監(jiān)聽事件
class moveList extends KeyAdapter{
public void keyPressed(KeyEvent e) {
System.out.println("按下"+e.getKeyChar());
}
public void keyReleased(KeyEvent e) { }
}
//繼承JPanel在面板上畫圖片
class MyPanel extends JPanel{
Image bg=new ImageIcon("image/bg.gif").getImage();
Plane p=new Plane("image/enemy2.png",100,100);
MyPanel(){
addKeyListener(new moveList());
}
public void paint(Graphics g){
g.drawImage(bg, 0, 0,null); p.draw(g); repaint();
this.requestFocus();
}
}
//Plane.java文件
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
// 戰(zhàn)機(jī)的屬性
public class Plane {
int y;
int x;
Image img;
double speed=0.1;
public Plane( String imgpath,int x, int y) {
this.x = x;
this.y = y;
this.img =new ImageIcon(imgpath).getImage();
}
public void draw(Graphics g){
g.drawImage(img, x, y, null);
}
}
開放注冊以前,本人以游客身份學(xué)習(xí)了各位大大的教程已成功破解了30多款游戲!現(xiàn)在把我的學(xué)到的告訴大家!
---------------------------------手機(jī)端破解:破解工具:Dalvik字節(jié)碼編輯器(百度下載)---------------------------------破解方法:
1:此方法比較簡單 但是僅適用于少數(shù)游戲(雷霆戰(zhàn)機(jī)2) 打開Dalvik字節(jié)碼編輯器(以下簡稱 工具) 找到所要破解的游戲 點(diǎn)擊進(jìn)入 會有幾個(gè)文件和文件夾,接著打開文件 classes.dex
一樣有許多文件和文件夾 點(diǎn)擊手機(jī)的菜單鍵(不要跟我說菜單鍵找不到!手機(jī)屏幕下方的那三個(gè)觸摸鍵!) 選擇搜索字符串 搜索 gc_billing_fail 一樣會有3個(gè)文件 選擇 cn\emagsoftwarel\gamebilling\view\$1 然后也有三種選擇 選擇methods onbillingsuccess內(nèi)容全部復(fù)制把onuselopercallcer內(nèi)容刪除,再粘貼再把onbillingfair的內(nèi)容刪除,再粘貼,然后一直保存,回退到剛打開安裝包的那個(gè)頁面打開Androidmanifest.html 以后刪除此代碼: android permisson sends sms(刪除這個(gè)是踢除游戲發(fā)送短信的權(quán)限) 最后保存。保存成功后,會在原來的游戲安裝包下面出來自己破解的安裝包!安裝即可!(如果未破解的版本安裝了的話,先卸載!再安裝破解版!不然兩個(gè)軟件簽名不同,不能安裝)------------------------------!搜索的gc_billing_fail稱之為游戲的string,每個(gè)游戲都有string,而找到string需要將apk反編譯(手機(jī)端反編譯利器apktool)----------------------------------
2:用到的工具還是一樣,此方法大多數(shù)游戲都能破解,唯一的缺點(diǎn)就是麻煩,費(fèi)時(shí)!還要得懂點(diǎn)代碼的意思
游戲中,付費(fèi)成功會有:購買成功、支付成功、已購買等等的提示語!付費(fèi)失敗則反之!---------------------------------首先第一步:安裝游戲,進(jìn)游戲查看其提示語是什么!我自己破解的游戲過程(狂斬三國—單擊版) “支付失敗”呵呵!那就簡單了! 用工具打開安裝包打開classes.dex菜單鍵 選擇搜索字符串 搜索:支付失敗 有三個(gè)文件 起初我是把三個(gè)文件里的都修改了!才知道這樣會亂碼 程序不能運(yùn)行,三個(gè)支付失敗的方法中只有一個(gè)是真正實(shí)現(xiàn)跳轉(zhuǎn)的,那么,我能不能給三個(gè)文件中的支付失敗的提示語后面標(biāo)上1,2,3,呢?再保存安裝包,安裝運(yùn)行游戲,看看到底那個(gè)才是實(shí)現(xiàn)跳轉(zhuǎn)的,于是乎,付費(fèi)失敗提示“支付失敗3”嘿嘿!這就簡單了!用工具打開剛修改過得安裝包搜索:支付失敗3 就會出來文件 選擇打開 下面我把代碼粘貼過來講解!帶()的是我的注解
const/16 v0 0x9if-ne v6 v0 :label_21(這個(gè)代碼的意思是:如果什么什么的值不為0就跳轉(zhuǎn)到label_21 這個(gè)就是跳轉(zhuǎn)命令,我們要看看它跳轉(zhuǎn)項(xiàng)的內(nèi)容是什么)invoke-static {} Lcn/koogame/market/MarketLogic;-getInstance()Lcn/koogame/market/MarketLogic;move-result-object v0invoke-static {} Lcn/koogame/market/MarketLogic;-getInstance()Lcn/koogame/market/MarketLogic;move-result-object v1iget-object v1 v1 Lcn/koogame/market/MarketLogic;-alixBPID:Ljava/lang/String;const/4 v2 1const-string v3 "支付成功"invoke-virtual {v0,v1,v2,v3} Lcn/koogame/market/MarketLogic;-payCallback(Ljava/lang/String;ILjava/lang/String;)Vlabel_20:return-voidlabel_21:(跳轉(zhuǎn)項(xiàng)-----------------以下便是label_21的內(nèi)容)invoke-static {} Lcn/koogame/market/MarketLogic;-getInstance()Lcn/koogame/market/MarketLogic;move-result-object v0invoke-static {} Lcn/koogame/market/MarketLogic;-getInstance()Lcn/koogame/market/MarketLogic;move-result-object v1iget-object v1 v1 Lcn/koogame/market/MarketLogic;-alixBPID:Ljava/lang/String;const/4 v2 0const-string v3 "支付失敗3"(支付失敗!嘿嘿!直接把支付失敗的跳轉(zhuǎn)項(xiàng)刪除,再把開頭的跳轉(zhuǎn)命令刪除 然后保存)invoke-virtual {v0,v1,v2,v3} Lcn/koogame/market/MarketLogic;-payCallback(Ljava/lang/String;ILjava/lang/String;)Vgoto :label_20----------------------------------下面把我修改過后的代碼粘貼過來,大家可以對照下----------------------------------
const/16 v0 0x9
invoke-static {} Lcn/koogame/market/MarketLogic;-getInstance()Lcn/koogame/market/MarketLogic;move-result-object v0invoke-static {} Lcn/koogame/market/MarketLogic;-getInstance()Lcn/koogame/market/MarketLogic;move-result-object v1iget-object v1 v1 Lcn/koogame/market/MarketLogic;-alixBPID:Ljava/lang/String;const/4 v2 1const-string v3 "支付成功"invoke-virtual {v0,v1,v2,v3} Lcn/koogame/market/MarketLogic;-payCallback(Ljava/lang/String;ILjava/lang/String;)Vlabel_20:return-void
invoke-virtual {v0,v1,v2,v3} Lcn/koogame/market/MarketLogic;-payCallback(Ljava/lang/String;ILjava/lang/String;)Vgoto :label_20
不要用鍵盤監(jiān)聽,鍵盤事件只會傳遞給當(dāng)前獲得焦點(diǎn)的組件。
使用按鍵映射,綁定InputMap和ActionMap,具體做法可以自己搜相關(guān)內(nèi)容。
雷霆戰(zhàn)機(jī)上有一個(gè)閃光的點(diǎn),被攻擊到就會掉血,你可以根據(jù)獲取到屏幕寬度比如是800和高度1400,來設(shè)置這個(gè)點(diǎn)的活動范圍,上下活動范圍在(50,1350)之間,左右設(shè)置在(50,750)之間,是否選擇50或者80看你的飛機(jī)圖片大小,你想讓飛機(jī)都在屏幕上,那就的計(jì)算飛機(jī)圖片的大小,根據(jù)飛機(jī)中心點(diǎn)到飛機(jī)邊緣(左右)是70px,那你就選擇70,但是這些值和飛機(jī)的大小都不能是固定值,一定要按照不同手機(jī)的屏幕大小來設(shè)置飛機(jī)的大小來滿足不同玩家的視覺效果,具體設(shè)置多少值,你可以多拿幾個(gè)不同屏幕的手機(jī)來運(yùn)行來試,如果你懶得一個(gè)個(gè)去試,可以把你飛機(jī)距離屏幕的距離可以設(shè)置為一個(gè)百分值,可以將這些之值寫入一個(gè)list中 只要獲取的到屏幕大小,就按照list中的值來取就行了。希望對你有幫助。
當(dāng)前文章:雷霆戰(zhàn)機(jī)代碼java實(shí)現(xiàn) c++雷霆戰(zhàn)機(jī)代碼
文章出自:http://m.rwnh.cn/article20/dosgdco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、全網(wǎng)營銷推廣、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)、域名注冊、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)