1樓:牛a和牛c間徘徊
我寫了個demo,你自己下回去看看吧,一個坦克遊戲的demo可以移動和攻擊目標
***************以下是之前回復的********************
不知道你的遊戲重新整理過程是怎麼寫的..
總之每重新整理一楨,就要重新整理螢幕上所有物體的狀態,判斷哪些新生成,哪些該銷燬,所以子彈不能只發射,不銷燬..
**1的資訊最好用結構體來儲存,其中要有個rect來儲存這個**的位置,把子彈用定義成pointapi,只記錄座標就好了,子彈發射要用陣列,子彈要判斷敵我,速度,還有方向,最好也用結構體來儲存,判斷子彈是否打中目標,或者移除螢幕範圍,建議用api ptinrect 來做,這個api的執行速度非常快,幾百發子彈一會也可以判斷完畢
我能表達的也只有這些了,呵呵,如果你能看懂就看了,看不懂只能慢慢體會,但千萬不要退縮,多做做就會了
還有啊,做遊戲最好別直接移動控制元件,多了會很卡,快了會出現閃爍,最好是直接在pic控制元件或者form上畫影象,最最好呢,是用api來畫,速度很快,呵呵
2樓:匿名使用者
我想問一下 被你這樣一說有點像3d了?
給你幾個參考:
首先,製作介面,放一個炮臺,再放一個目標。
然後在form_keypress裡面去判斷按了左鍵還是右鍵。
如果你不知道keyascii你可以這樣寫,在裡面寫debug.print keyascii
這樣你按左右鍵就能得到它的keyascii了。
那麼往左就是
炮臺(一個**).left = 炮臺.left - 5 * 15 '5:5畫素,15:vb單位與畫素的轉換
往右就是
炮臺.left = 炮臺.left + 5 * 15
當然也要加上判斷
向左:if 炮臺.left >= 5*15 then
炮臺.left = 炮臺.left - 5 * 15
elseif 炮臺.left > 0 then
炮臺.left = 0
end if
向右:if 炮臺.left <= width - 5*15 then
炮臺.left = 炮臺.left + 5 * 15
elseif 炮臺.left < width then
炮臺.left = width - 炮臺.width
end if
這樣左右移動就ok了。
另外附上計算炮臺中心的演算法:
炮臺x的中心:中心=炮臺.left + (炮臺.width /2)。當然如果發射子彈,假設子彈有寬度,那麼發射子彈時候子彈位置應該是
炮臺.left + (炮臺.width /2) - (子彈.width /2)。
先說到這裡 明天修改繼續。
配置高手來一下
主機板 微星 k9n6sgm v 480.00cpu amd athlon64 x2 4200 am2 盒 610.00 顯示卡 七彩虹 天行7600gs gd3 cf白金版 256m v14 590.00 記憶體 金士頓 1gb ddr2 667 315.00硬碟 希捷 160g 7200.9 8...
求數學高手來一下
小紅吃了最後剩餘的一半多一個,說明最後的一半是一個,則小紅吃了兩個,2 1 3個事小平吃時的一半,所以小明吃完該小平時還剩3 2 6個,同理 6 1 2 14是最初的蘋果個數,小明吃了8個,小平吃了4個,小紅吃了2個。 小紅吃了最後的一半多一個,這樣蘋果剛好全部吃完,小紅沒吃時還剩1 1 1 2 2...
英語高手來一下v it adj to do sth
小幽 think it adj to do sth feel 同上 以上三個詞是固定的。當然 認為 還有以下用法,如suppose,consider,等。可代替think 當複合賓語中的賓語是不定式 動名詞或賓語從句時,往往把賓語放在它的補足語後面,而用it 作形式賓語,放在賓語補足語之前。詞類的句...