會的人...
幫看一下吧
我想在電腦上面做"蟲"這個遊戲
===============================================
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then Unload Me Else If KeyCode <> 0 Then a = c: b = d Else t = t + 3.14159265358979 / 12
End Sub
===============================================
Private Sub Timer1_Timer()
Cls
Circle (x, y), 5, 1
y=y+1
x=x+1
End Sub
===============================================
以上...
但是每跑到timer時
x和y的值好像都歸零了
所以永遠只在左上角有個球
電腦是會將所有變數重設為0嗎?
[問題][求助]我初學VisualBasic卡住啦...
[問題][求助]我初學VisualBasic卡住啦...
- 附加檔案
-
- bug程式碼.zip
- 程式檔
- (3.21 KiB) 已下載 1069 次
-
- bug.zip
- 1.02版
有特殊球
可記錄高分
但無音樂音效 - (9.85 KiB) 已下載 1270 次
最後由 大地旅法師 於 2005-04-26 7:52 PM 編輯,總共編輯了 4 次。
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
有了有了
謝謝
dim我懂
但
Private Sub Form_Load()
為什麼要呢?
還是只是定義啟始點而已?
謝謝
dim我懂
但
Private Sub Form_Load()
為什麼要呢?
還是只是定義啟始點而已?
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
又有問題了...
我用KeyDown事件寫
但它判斷第一次和第二次之間會有間隔
就是按下時keydown
隔一下才keydownkeydownkeydownkeydownkeydownkeydownkeydown
而且
If KeyCode = 0 Then t = t + 3.14159265358979 / 12
這行沒用...
為什麼?
以下:
Dim X, Y, m, n, a, b, c, d, t, r As Integer
==========================
Private Sub Form_Load()
m = 1
n = 1
X = 20
Y = 20
r = 10
a = 140
b = 105
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
End Sub
===========================================
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then Unload Me
If KeyCode <> 0 Then a = c: b = d
If KeyCode = 0 Then t = t + 3.14159265358979 / 12
End Sub
==================
Private Sub Timer1_Timer()
Cls
Circle (X, Y), r, 1
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
X = X + m
Y = Y + n
If X > 271 - r Then m = -m: X = 271 - r
If X < r Then m = -m: X = r
If Y > 203 - r Then n = -n: Y = 203 - r
If Y < r Then n = -n: Y = r
Line (a, b)-(c, d)
End Sub
我用KeyDown事件寫
但它判斷第一次和第二次之間會有間隔
就是按下時keydown
隔一下才keydownkeydownkeydownkeydownkeydownkeydownkeydown
而且
If KeyCode = 0 Then t = t + 3.14159265358979 / 12
這行沒用...
為什麼?
以下:
Dim X, Y, m, n, a, b, c, d, t, r As Integer
==========================
Private Sub Form_Load()
m = 1
n = 1
X = 20
Y = 20
r = 10
a = 140
b = 105
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
End Sub
===========================================
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then Unload Me
If KeyCode <> 0 Then a = c: b = d
If KeyCode = 0 Then t = t + 3.14159265358979 / 12
End Sub
==================
Private Sub Timer1_Timer()
Cls
Circle (X, Y), r, 1
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
X = X + m
Y = Y + n
If X > 271 - r Then m = -m: X = 271 - r
If X < r Then m = -m: X = r
If Y > 203 - r Then n = -n: Y = 203 - r
If Y < r Then n = -n: Y = r
Line (a, b)-(c, d)
End Sub
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
=.=
可以了
我還真厲害...(逃)
(回)
我用了keyup解決...
Dim X, Y, m, n, a, b, c, d, t, r, z As Integer
===========================
Private Sub Form_Load()
m = 2
n = 2
X = 20
Y = 20
r = 10
a = 140
b = 105
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
End Sub
===========================================
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then Unload Me
If KeyCode <> 0 Then z = 1
End Sub
=========================================
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
z = 0
End Sub
==================
Private Sub Timer1_Timer()
Cls
If z = 1 Then a = c: b = d
If z = 0 Then t = t + 3.14159265358979 / 12
Circle (X, Y), r, 1
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
X = X + m
Y = Y + n
If X > 271 - r Then m = -m: X = 271 - r
If X < r Then m = -m: X = r
If Y > 203 - r Then n = -n: Y = 203 - r
If Y < r Then n = -n: Y = r
Line (a, b)-(c, d)
End Sub
可以了
我還真厲害...(逃)
(回)
我用了keyup解決...
Dim X, Y, m, n, a, b, c, d, t, r, z As Integer
===========================
Private Sub Form_Load()
m = 2
n = 2
X = 20
Y = 20
r = 10
a = 140
b = 105
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
End Sub
===========================================
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then Unload Me
If KeyCode <> 0 Then z = 1
End Sub
=========================================
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
z = 0
End Sub
==================
Private Sub Timer1_Timer()
Cls
If z = 1 Then a = c: b = d
If z = 0 Then t = t + 3.14159265358979 / 12
Circle (X, Y), r, 1
c = a + 5 * Cos(t)
d = b + 5 * Sin(t)
X = X + m
Y = Y + n
If X > 271 - r Then m = -m: X = 271 - r
If X < r Then m = -m: X = r
If Y > 203 - r Then n = -n: Y = 203 - r
If Y < r Then n = -n: Y = r
Line (a, b)-(c, d)
End Sub
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
初版完成了
先放上來...
1.02完成了
砍掉初版...
先放上來...
1.02完成了
砍掉初版...
最後由 大地旅法師 於 2005-04-24 5:54 PM 編輯,總共編輯了 1 次。
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
說的也是...
在哈哈上用慣了...
為了左上文字的歸位
還是用了CLS...
在哈哈上用慣了...
為了左上文字的歸位
還是用了CLS...
最後由 大地旅法師 於 2005-04-24 5:57 PM 編輯,總共編輯了 1 次。
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
還有...
它的Rnd怪怪的...
每次跑都一樣...
根本不能算是隨機=.=
還有...
音樂及音效的插入...
教一下吧?
謝謝
它的Rnd怪怪的...
每次跑都一樣...
根本不能算是隨機=.=
還有...
音樂及音效的插入...
教一下吧?
謝謝
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
我加入一行:
FOR I=1 TO Minute(Time)+Second(Time) :Rnd:Next
解決^^
FOR I=1 TO Minute(Time)+Second(Time) :Rnd:Next
解決^^
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]
是不是電腦無法真的做出"隨機"
只好用"隨機號碼表"?
用時間這個觀念是死神給的
之前我們討論過
既然連種子都是用時間
那好像也只有這個辦法
只好用"隨機號碼表"?
用時間這個觀念是死神給的
之前我們討論過
既然連種子都是用時間
那好像也只有這個辦法
[img5d6fb]http://img53.imageshack.us/img53/3741/yweb4ix.jpg[/img5d6fb]