Ana Menü
· Ana Sayfa
· Dosyalar
· Dökümanlar
· Forum
· Günün Resmi
· Haber Arşivi
· WWW Linkleri
· Üye Listesi

     Forumlar

 strncpy ve strncpy_s
 Konu adi : Borland c++ Builder ile Amiral Batti
 Rady10 - YerliOyun
 Kabusta Kaybolmak
 Konsol da programı bekletmek
 Oyun programlama icin hangi programlama dilli ?
 flash! şanlıurfa bilgisayar oyununda(no rapid)
 Sevgilim Olur musun?
 Directx'e başlamak isteyenler bi bakın
 PSP programlama
 Flash tan php
 Bilgisyr oyunu yapmam için üniverstde hangi bölüme girmeliym
 www.arshiv.gen.ms
 Cimg.h ilgilenenler icin
 müttefik oyunu

Konu Disi
 Emraah
 Yeni sitemiz açıldı
 Kalp krizi durumunda ne yapılmalı?
 Oyun sektöründe hangi görevde çalışmak isterdiniz?
 Takım arkadaşı sorunu
 msn de renklı nıck
 pc hata veriyor ! YARDIM!!
 Gülmek isteyenler Buraya
 İnanılmaz hl 2 modu görüntüsü
 Computer Languages History

[ Forumlara Git ]


oyunyapimi.org: Forums

www.oyunyapimi.org :: Başlığı Görüntüle - Vbde Masa Tenisi (yardım)
 SSSSSS   AramaArama   Kullanıcı GruplarıKullanıcı Grupları   ProfilProfil   LoginLogin 

Vbde Masa Tenisi (yardım)

 
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar
Önceki başlık :: Sonraki başlık  
Yazar Mesaj
keremakgul



Kayıt: Jul 05, 2005
Mesajlar: 58

MesajTarih: Fri Aug 26, 2005 8:18 pm    Mesaj konusu: Vbde Masa Tenisi (yardım) Alıntıyla Cevap Ver

Selam arkadaşlar ben basit bir visual basicte tenis oyunu yapıyorum. Dışarı çıkınca topun yönünü değiştirmesini istiyorum şu şekilde kod yazdım ama olmadı :
asagi sol timeri:
Kod:
Private Sub asagisol_Timer()
Label1.Top = Label1.Top + 5
Label1.Left = Label1.Left - 5
End Sub

sol yukari timeri:
Kod:
Private Sub solyukari_Timer()
If (Label1.Top >= 0 And Label1.Top <= 100) And (Label1.Left >= 0 And Label1.Left <= 360) Then
solyukari.Enabled = False
asagisol.Enabled = True
End If
Label1.Top = Label1.Top - 7
Label1.Left = Label1.Left - 5
End Sub

Burda label1 oyundaki top ama neden label1 istediğim koordinatlara gelince yönünü değiştirmiyor yardımlarınızı bekliyorum...
Başa dön
Kullanıcı profilini gör
TheCotanak



Kayıt: Sep 03, 2003
Mesajlar: 921
Nereden: Istanbul

MesajTarih: Sat Aug 27, 2005 2:42 am    Mesaj konusu: Alıntıyla Cevap Ver

Selam..
Ilk olarak formda bos alanda yapmaktan daha kolayi var. Her kenarı line koyarak belirle.. alt çizgi, yan çizgi falan.. dikdörgen içinde dolaşsın top yani.. sonra topun ilk alt tabana değip sekeceğini düşünecek olursak ki sen öyle yapmak istemişsin:

Kod:


Private Sub asagisol_Timer()

Label1.Top = Label1.Top + 5
Label1.Left = Label1.Left - 5
If Label1.Top = alt_cizgi.Y1 - 255 Then
solyukari.Enabled = True
asagisol.Enabled = False
End If
End Sub



Bunu asagisol_timer'a uygularsan ne demek istedigimi anlayacaksın..
Bu arada "alt_cizgi.y1 - 255" kısmında, benim label topumun heighti 255 idi.. o yuzden 255 dedim.. sen seninkine göre ayarla..

Bunu yaptıktan sonra diğer kenarları da yaparsın zaten.

Kolay gelsin.
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
TheCotanak



Kayıt: Sep 03, 2003
Mesajlar: 921
Nereden: Istanbul

MesajTarih: Sat Aug 27, 2005 3:13 am    Mesaj konusu: Alıntıyla Cevap Ver

Hatta sana tam bir ornek hazirladim..
Al sana tam bir ornek:

http://rapidshare.de/files/4409738/orn.rar.html
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
BuroX



Kayıt: Jun 07, 2005
Mesajlar: 65
Nereden: Hancan Games'ten

MesajTarih: Sat Aug 27, 2005 1:15 pm    Mesaj konusu: Alıntıyla Cevap Ver

Ben de collision detection yapamıyorum. Kodlara bir bakın nereyi yanlış yaptım?

Kod:

Option Explicit
Dim fps, puan, adamsol, kutusol As Long
Dim can As Integer

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    If KeyCode = vbKeyRight Then
        Timer1.Enabled = True
        Timer2.Enabled = False
    End If
    If KeyCode = vbKeyLeft Then
        Timer2.Enabled = True
        Timer1.Enabled = False
    End If

End Sub

Private Sub Form_Load()

    adam.FileName = "C:\Program Files\Game_Maker6\Sprites\morphosis_figures\johnny.gif"
    can = 3
    puan = 0

End Sub

Private Sub Timer1_Timer()

    adam.FileName = "C:\Program Files\Game_Maker6\Sprites\morphosis_figures\johnny.gif"
    adamsol = adamsol + 100

End Sub

Private Sub Timer2_Timer()

    adam.FileName = "C:\Program Files\Game_Maker6\Sprites\morphosis_figures\johnny_ters.gif"
    adamsol = adamsol - 100

End Sub

Private Sub Timer3_Timer()
   
    fpsyazi.Caption = "FPS: " & fps
    fps = 0
   
End Sub

Private Sub Timer4_Timer()

    adam.Left = adamsol
    kutusol = Image2.Left
    fps = fps + 1
    canyazi.Caption = "Can: " & can
    puanyazi.Caption = "Puan: " & puan
    If adamsol = kutusol Then
    Timer2.Enabled = True
    Timer1.Enabled = False
    End If
       
End Sub
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
levent



Kayıt: Mar 13, 2003
Mesajlar: 188
Nereden: İstanbul

MesajTarih: Sat Aug 27, 2005 1:40 pm    Mesaj konusu: Alıntıyla Cevap Ver

öncelikle o kadar çok timer kullanmaya gerek yok oyunda 1 tane timer (aslında ona da gerek yok, tercihen do-loop döngüsü daha iyi olur) yeterli.
Aşağıdaki kod iki objenin collide edip etmediğini test eder. bunlar custom objectler olduğu için x,y,w,h özelliklerine sahip. eğer bunları diyelim ki imageboxlarla değiştirmek istiyorsanız x,y,w,h özelliklerini sırasıyla left,top,width,height ile değiştirmenizi gerekir.yani obj1.x yerine obj1.left demelisiniz.

Kod:


Public Function Collid(obj1 As gObj, obj2 As gObj) As Boolean


If ((obj1.X + obj1.W) > obj2.X) And (obj1.X < (obj2.X + obj2.W)) Then
If ((obj1.Y + obj1.H) > obj2.Y) And (obj1.Y < (obj2.Y + obj2.H)) Then
Collid = True
Else
Collid = False
End If
Else
Collid = False
End If



End Function


Collid(image1,image2)=true dönüyorsa image1 ve image2 birbirine dokunuyor (ya da içiçe geçmiş) demektir.
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
BuroX



Kayıt: Jun 07, 2005
Mesajlar: 65
Nereden: Hancan Games'ten

MesajTarih: Sat Aug 27, 2005 3:43 pm    Mesaj konusu: Alıntıyla Cevap Ver

Çok teşekkürler.

Yalnız 3-4 tane timer kullanmaktan başka çarem yok, çünkü hepsi aynı anda çalışmak zorunda ve intervalları farklı.
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
wisecode_g



Kayıt: Jul 29, 2005
Mesajlar: 17
Nereden: istanbul

MesajTarih: Tue Oct 04, 2005 3:49 pm    Mesaj konusu: Alıntıyla Cevap Ver

belli sınırlar koyduktan sonra mesela top image1 olsun..

timer içinde kontrol yapacaz şöyle..
dim sagsol,yukasa,hiz,altsinir,yansinir As Integer
altsinir=5000;
yansinir=4000;
hiz=50 ' bu topun hareket hızı
sagsol = hiz;
yukasa = hiz;

Private Sub Timer1_Timer()

if (image1.left >= yansinir-image1.width) OR (image1.left <= 0)then 'image1 in genişliğini hesaba katıyoruz.
sagsol = -sagsol
end if
if (image1.top >= altsinir-image1.height) OR (image1.top <= 0 ) then
yukasa=-yukasa
end if

End Sub

labta yazıyom derse yetişmem lazım hızlı yazdım bi sorun varsa söyleyin ama mantık doğru sanırım..
Wink
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder MSN Messenger
Fraud



Kayıt: Oct 29, 2004
Mesajlar: 42
Nereden: Istanbul

MesajTarih: Fri Oct 07, 2005 1:59 am    Mesaj konusu: Alıntıyla Cevap Ver

wisecode_g demiş ki:
belli sınırlar koyduktan sonra mesela top image1 olsun..

timer içinde kontrol yapacaz şöyle..
dim sagsol,yukasa,hiz,altsinir,yansinir As Integer
altsinir=5000;
yansinir=4000;
hiz=50 ' bu topun hareket hızı
sagsol = hiz;
yukasa = hiz;

Private Sub Timer1_Timer()

if (image1.left >= yansinir-image1.width) OR (image1.left <= 0)then 'image1 in genişliğini hesaba katıyoruz.
sagsol = -sagsol
end if
if (image1.top >= altsinir-image1.height) OR (image1.top <= 0 ) then
yukasa=-yukasa
end if

End Sub

labta yazıyom derse yetişmem lazım hızlı yazdım bi sorun varsa söyleyin ama mantık doğru sanırım..
Wink


Farkettiğim tek sorun bazı satırların sonundaki. ";" Very Happy Kafa C'deydi sanırım. Smile
Başa dön
Kullanıcı profilini gör MSN Messenger
wisecode_g



Kayıt: Jul 29, 2005
Mesajlar: 17
Nereden: istanbul

MesajTarih: Fri Oct 07, 2005 11:03 am    Mesaj konusu: Alıntıyla Cevap Ver

valla öyleymiş şimdi gördüm Razz
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder MSN Messenger
Mesajları göster:   
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar Tüm saatler GMT +2 Saat
1. sayfa (Toplam 1 sayfa)

 
Forum Seçin:  
Bu forumda yeni konular açamazsınız
Bu forumdaki mesajlara cevap veremezsiniz
Bu forumdaki mesajlarınızı değiştiremezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu forumdaki anketlerde oy kullanamazsınız


Powered by phpBB 2.x.x © 200x phpBB Group
Türkçe Çeviri : Onur Turgay & Erdem Çorapçıoğlu
Türkçe Düzenleme: Alexis Canver
Version 2.x.x of PHP-Nuke Port by Tom Nitzschner © 200x www.toms-home.com




Web site powered by PHP-Nuke
Web site engine\'s code is Copyright © 2002 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Sayfa Üretimi: 0.119 Saniye