Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
Sayfa: [1] 2 3   Aşağı git
Yazdır
Gönderen Konu: Basic Tenliners 2016  (Okunma Sayısı 50072 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« : Şubat 06, 2016, 16:51:42 ÖS »

Basic Tenliners 2016'ya katılmayı düşünen çıkar mı?

10 satırı geçmeyecek şekilde BASIC ile yazılmış oyunlar yarışıyor.
Cihaz kısıtlaması yok ama katılımlar genelde Atari ve Commodore üzerinden oluyor.

----------------------------------------------------------------------------------------------------------
YARIŞMA KURALLARI

En büyük kural her şey 10 satırda olup bitecek. Ayrıca üç kategori belirlenmiş:

  • PUR-80: Kısaltmalarla beraber satır başına 80 karakter
  • PUR-120: Kısaltmalarla beraber satır başına 120 karakter
  • EXTREM-256: Kısaltmalar beraber satır başına 256 karakter

Önemli uyarı: Malum List komutu kısaltmaları bozduğu için, karakterler List komutundan önce sayılıyor.
Katılımcılar genelde programın 10 satıra sığdığını gösteren bir ekran görüntüsünü kaydederek, bunu başvurularına ekliyorlar.

Diğer kurallar:
- Data ve program partları geri yüklenmeyecek.
- 10 satırlık kod makina kodu oluşturmayacak
- POKE serbest (grafik, sprite etc.)
- Son teslim tarihiDeadline: Pazartesi 03/28@6pm (Central European Time)
- Ödül tarihi: Cumartesi 04/02@NOMAM retro convention
- Oylama: uzman heyeti
- Program beraberinde açıklayıcı bir metin dosyası verilecek. Burada hangi emulatörde çalıştığı, nasıl çalıştırılacağı belirtilecek.
- Organizatör programı ve beraberinde açıklamaları istediği gibi yayınlama hakkına sahip olacak.

Başvurular GKANOLD-at-GMAIL-dot-COM adresine yapılacak.

----------------------------------------------------------------------------------------------------------
Yarışma ilanı ve Lemon64 forum başlığının linkleri aşağıda.

http://gkanold.wix.com/homeputerium#!basic-tenliners-2016/c450
http://www.lemon64.com/forum/viewtopic.php?t=59234&start=25&postdays=0&postorder=asc&highlight=
« Son Düzenleme: Şubat 18, 2016, 10:37:08 ÖÖ Gönderen: wizofwor » Logged

wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #1 : Şubat 08, 2016, 14:21:30 ÖS »

Blackturk'ün VICE Monitör ile karakter seti çalmak başlığındanki mesajlarını konu bütünlüğü açısından buraya taşıdım.

Sen geçen 10 satırlık basic oyun yarışması dedin kafaya taktım.Bende acaba 10 satırlık pinball olur mu diye uğraşıyorudm.pinball kontrolleri ve pinball oyun alanı tasarım ile uğraştım.10 satırdan fazla ama ben 10 satır tasarım kadar olan daha minyatür kaba bir şey düşüncem var.

joker bana trail blazer efekt'in yapılışndan bahsetmişti.bende yarım saatlik bir uğraşı ile tabi hatalı ama iş görürü gibi.aşağıdakini yaptım.


10 satırlık basic pinball uğraşısı , birde screen memory dump hex viewer ile


http://www.youtube.com/watch?v=s_Adna-sloo&feature=youtu.be


Trailblazer Zamazingosu   hatalı


http://www.youtube.com/watch?v=vCbIzIN0s-M


10 satırlık basic pinball uğraşısı , birde  screen memory dump hex viewer ile

10 satır basic yarışmasının 2016 etabı devam ediyor. Mart sonuna kadar yetiştirisen katılabilirsin. İlk başta satır kısıtlamasına fazla takılmamanı öneririm. Çalışan oyunu tamamlandıktan sonra. 150-200 satır kodu bile 10 satıra indirebilirsin.
« Son Düzenleme: Şubat 17, 2016, 10:45:38 ÖÖ Gönderen: wizofwor » Logged

blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #2 : Şubat 14, 2016, 01:07:29 ÖÖ »

10 satırlık basic pinball uğraşısı , birde  screen memory dump hex viewer ile

10 satır basic yarışmasının 2016 etabı devam ediyor. Mart sonuna kadar yetiştirisen katılabilirsin. İlk başta satır kısıtlamasına fazla takılmamanı öneririm. Çalışan oyunu tamamlandıktan sonra. 150-200 satır kodu bile 10 satıra indirebilirsin.


   Biraz sıkıntılı bir konu pinball .Çünkü oyunun birebir modelini  10 satıra sığdırmak zor gözüküyor.yok eğer basit liner hareket modeli kullansak olur.

    Tasarıma basitleştirmek istersek , eğer sadece lineer hareket ve lineer limit sınırlarda hareket etmesi sağlarsak .10 satırlık  kolay bir şekilde olur.

 p(x1,y1) top kordinatı  , dx ; x'de  değişim miktarı ve yön kontrol  ,dy ; y'de değişim miktarı ve yön kontrol , t birim zamanda yapılan hareket

    Topun x kordinatındaki değişimi  x=x1+dx*t hesaplanır.
    Topun y kordinatındaki değişimi  y=y1+dy*t hesaplanır.

   bu  x ,y kordinatlarını  limit değerleri ekran düzleminde sınırladırılarak kontrol edilebilir.basit bir model oldu.

    bu top hareketi için çarpışma kontrolleri yazmak gerekiyor.Oyundaki iç kısmında bazı parçalarla çarpışması yada paddlerla vuruş yapılması gibi.Buna göre topun  hareket yönü ve hız kontrolü yapılması mekanik'de yapılabilir.


   Ama birebir modellemek gerekirse işini içine vektörler girer .Ve burda iş biraz uzar gibi gözüküyor.

   Benim fikirmice topun hareketi  önce kuvvet vektörü ile kontrol edilebilir olması gerekir.kuvvet vektörün kullanmak modellemiyi kollaylaştırır düşüncesindeyim.kuvvet vektörden  hız vektörüne geçiş ordan konum vektörüne geçerek topun 2 boyutlu düzlemdeki hareketini gerçeğe yakın modellenebilir.

    Top'a uygulalan kuvvet "F" topun merkezinden geçen bir kuvvet olacak.topun kütlesini m kabul edelim .Top Ters yönde sürtünme kuvetini "FS" kabul edersek .Birim zamanda F kuvvetinden  ters Fs kuvvetinin farkın  alarak kuvvet vektöründeki değişimi sağlamış oluruz. 2 boyutlu ekran düzleminde topun belli bir açı ile gitmesi gerekiyor.Model gerçege yakın olsun.konum vektörünü hesaplarken , hız vektörünü trigonometrik açı değerleri çarpımı ile yön verebiliriz.Fazla uzatmayayım förmülleri yazıyorum.

  Kuvvet vektörü  bileşenlerinden
   fx=fx-fs
   fy=fy-fs

hız vektörüne geçiş
   ax=fx/m
   ay=fy/m
   vx=ax*t
   vy=ay*t

konum vektörüne geçiş sağlarsak

  dx :X kordinatında yön secimi
  vx :x değişim hız miktarı
  d  :Gidiş açısı

  dx :Y kordinatında yön secimi
  vy :y değişim hız miktarı
  d  :Gidiş açısı   

  x=x1+dx*vx*cos(d)
  y=y1+dy*vy*sin(d)

    Bu şekilde top'a bir kuvvet uygulandığında kordinat değiştirecektir.Fakat model ekleme yapmaya devam edeceğiz çünkü kuvvet vektörlerinde düşey kuvvet hem ters sürtündem kuvveti ve düzlemdeki eğimin etkisiye aşağı doğru hareket yapacaktır.Bunun içinde  çarpışmalar ve kontrol mekanizmaları yazmak gerekiyor.Konu ok uzadığı için .daha fazla yazmıyorum.


    hangisi daha basit olur.bence linner olara kontrol kolay olurdu.




Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #3 : Şubat 15, 2016, 21:48:55 ÖS »

wiz of wor , henüz cevap yazmadın. daha yazacak neler var neler ....

         Pinball oyunun  top hareketlerin kontrol konusunda biraz daha bir şeyler yazmak için devam etmeye karar verdim.Top düşey’de hareket ettiğinde  , yani topun uzaklaşması yada bize yakınlaşması durumunda .oyunucuya o derinliği algılatmamız gerekiyor. Sadece pinball oyununda top gerçeğe yakın hareketini sağlamak oyunun gerçekliğini sağlamıyor.O halde nasıl bu algıyı yaratabiliriz bunun için ekranda topun sınırladırıldığı alanı iyi tanımlamamız gerekiyor.
     Resim 1 ‘de görüldüğü üzere basit birbirine dik doğruların sınırladığı alan olabilir.Fakat bunda derinlik algısı  algısı oluşturmamız zor görünüyor.Resim 2’de görüldüğü üzere  eğer ikiz kenar yamuk alan ile sınırlandırılması ile  topun boyut değişitirilerek   derinlik algısı yaratılabilir.
    Peki bu alan sınırlamasında kontrol nasıl olmalıdır. Resim 1 ‘de beli olan sınır değerleri  kontrol edilerek bu sağlanabilir.Topun  X kordinat değeri x (min) ve x (max) değerlerini aşmamalı.Aynı sınırlama düşeyde olur. Y kordinat değeri y (min) ve y (max) değerlerini aşmamalıdır.Bu kontrol mekanizması çok kolay olurdu.  X ve Y değerleri  sınır alanı belli bunu  mantıksal bir sonuc’a göre  kontrol edilir. Pseudo kod şöyle olmalıydı.
P(x1,y1)   ; top kordinatları   
   if   x1<xmin  and x1>xmax  then  x kordinat değiştir
   if   y1<ymin  and y1>ymax  then  y kordinat değiştir





İkiz kenar yamuk  köşelerden geçen doğrular , Her satırda xmin ve x max  sınır değerleri değişmektedir.Burda durum biraz farklılığında dolayı mantıksal işlem yapmak karmaşık görünüyor.Basit bir matematiksel fonksiyon model ile  yakın bir çözüm düşünüyorum.x min ve x max her satırda değiştiğine göre , topun y kordinat değerine  bağlı bir denklem yazılarak bir fonksiyon oluşturabiliriz. Ekran Genişliğini 320x200 kabul edersek .Ekran orjini 160,100 kordinatları olur.
           Topun her bulunduğu satırda x=160  merkez oluyor.Xmin değeri hesaplamak için xmin merkezden ne kadar uzaklıkta olması gerektiğin bulmam gerekiyor. Sınırlandılımış alan  ikiz kenar dörtgende sağ ve sol kenarda her 4 pixel farklı bir karakter pozisyonun gösteriyor. Topun                       Y1 =ekranda pixel olarak kordinatını  değerini karakter kordinatına dönüştürüyoruz.
G(y1)= int((y1+4)/8) değerini bulup . Şu lineer denklemi oluşturuyoruz.Daha fazla yazmıyacam konu uzuyor. Bu denklem “F(y1)=(160-2*R)-G(y1)*r” ile sınırlandılımış alanı mantıksal kontol yapabiliyoruz. . Xmax değeri için ise aynı denklem sadece sayı işaretleri “+” yapıyoruz.  F(y1)=(160+2*Karizmatik+G(y1)*3

       P(x1,y1)=p(120,100) için xmin değeri  G(y1)=int((100+4)/8)=13    F(y1)=144-13*3=144-39=105 xmin=105

F(y1)=176+39=215   
xmax=215
Pseudo code
   P(x1,y1)
   İf x1<xmin  and x1>xmax then x kordinat değiştir.






Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #4 : Şubat 17, 2016, 10:34:12 ÖÖ »

Bence biraz fazla detaylı düşünüyorsun.

Lineer hareket tabiki olmaz ancak çok da fazla detaya girmeye gerek yok.

İlk başta kuvvet hesabı yapmaya gerek yok. Çünkü kütlemiz dolayısı ile kuvvet/ivme oranımız sabit. Podların vuruş hızına göre farklı ivme değerleri kurgulamak yeterli olacaktır.

Biraz daha basitleştirelim. Aslında hız vektörüne de ihtiyacımız yok. Asıl ihtiyacımız olan şey dx. (Birim zamanda dx=V oluyor zaten.) dx'i hesaplarken de zamanı bilmemize gerek yok.

Biraz daha abartıp dx'i de hesaplamasak olur mu? Yer çekimi ivmesini sıfır alırsak olur. Çünkü topa kuvvet etki eden çarpma anları haricinde dx'in değeri hep aynı olacak. Kuvvet ve dx arasında bir orantı var. Bir de doğrultu olayını çözmek lazım.

Bunun için dx yerine dx ve dy deyimlerini kullanabiliriz. dx yatay dy dikey yön olur. Bunların değerini çarpma şiddeti ve açısına göre basitçe hesaplarız. Bu şekilde hesapladığımızda dx ve dy'yi doğrudan sprite koordinatlarına ekleyerek topa haraket verebiliriz.

Buraya kadar geldikten sonra yer çekimi ivmesini de hesaba eklemek istersen dx'i manipule ederek rahatça yapabilirsin.

Biraz fazla teorik oldu farkındayım. Aynı yarışma için zıplamalı bir oyun yazıyordum. Akşam orada kullandığım eğik atış formülünü örnek olarak eklerim.




« Son Düzenleme: Şubat 17, 2016, 11:20:12 ÖÖ Gönderen: wizofwor » Logged

blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #5 : Şubat 17, 2016, 20:14:04 ÖS »

Bence biraz fazla detaylı düşünüyorsun.

Lineer hareket tabiki olmaz ancak çok da fazla detaya girmeye gerek yok.

İlk başta kuvvet hesabı yapmaya gerek yok. Çünkü kütlemiz dolayısı ile kuvvet/ivme oranımız sabit. Podların vuruş hızına göre farklı ivme değerleri kurgulamak yeterli olacaktır.

Biraz daha basitleştirelim. Aslında hız vektörüne de ihtiyacımız yok. Asıl ihtiyacımız olan şey dx. (Birim zamanda dx=V oluyor zaten.) dx'i hesaplarken de zamanı bilmemize gerek yok.

Biraz daha abartıp dx'i de hesaplamasak olur mu? Yer çekimi ivmesini sıfır alırsak olur. Çünkü topa kuvvet etki eden çarpma anları haricinde dx'in değeri hep aynı olacak. Kuvvet ve dx arasında bir orantı var. Bir de doğrultu olayını çözmek lazım.

Bunun için dx yerine dx ve dy deyimlerini kullanabiliriz. dx yatay dy dikey yön olur. Bunların değerini çarpma şiddeti ve açısına göre basitçe hesaplarız. Bu şekilde hesapladığımızda dx ve dy'yi doğrudan sprite koordinatlarına ekleyerek topa haraket verebiliriz.

Buraya kadar geldikten sonra yer çekimi ivmesini de hesaba eklemek istersen dx'i manipule ederek rahatça yapabilirsin.

Biraz fazla teorik oldu farkındayım. Aynı yarışma için zıplamalı bir oyun yazıyordum. Akşam orada kullandığım eğik atış formülünü örnek olarak eklerim.








     Yukardaki yazında belirttiğin gibi , olayı  biraz daha basit modelleye biliriz.Aşağıdaki videoda  görüldüğü üzere sadece sadece konum vektörü bir değişken bağlı olarak değiştirilerek   topun serbest düşme hareketi yaparak zıplmasını çok benzer bir simülasyonun yapmış olduk.Böylece  kuvvet , hız vekötründen kurtulmuş olduk.basit cebirsel işleme dönüştü.ama açısal kontrol eklemdim son hali aşağıdaki gibi olur.

P(xp,yp)  : Top kordinatları

xsp       :  Topun yatay pozisyondaki hız değişim miktarı

ysp       :  Topun düşey pozisyondaki hız değişim miktarı

dy        :  Top'a   Düşey yer çekim  sabiti.
dx        :  Top'a   yatay  etki eden kuvvetler olarak düşünürsem.


pseudo code şöyle oluyor.


 xp=xp+xsp
 yp=yp+ysp

 eğer xp<xmin  veya  xp>xmax   öyleyse  xsp=-1*xsp
 eğer yp<ymin  veya  yp>xmax   öyleyse  ysp=-1*ysp
 
 ysp=ysp+dy
 xsp=xsp+dx

 Top tekrarla :

download :indirme link http://s3.dosya.tc/server8/8i3b3t/ball.zip.html


<a href="http://www.youtube.com/v/IXNeh3xH3xM&rel=0" target="_blank">http://www.youtube.com/v/IXNeh3xH3xM&rel=0</a>


<a href="http://www.youtube.com/v/IXNeh3xH3xM&rel=0" target="_blank">http://www.youtube.com/v/IXNeh3xH3xM&rel=0</a>












Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #6 : Şubat 17, 2016, 23:58:29 ÖS »

Benim kodum şu şekilde,

130 ve 140'da dx değerini belirliyorum. Ateşe basıldığı durumda 150'ye atlıyorum.

100 rem ***** ana döngü *****
110 jj=peek(56320) : if (jjand16)=0 then 150
120 jj=15-(jjand15)
130 if (jj=4 and dx >-10) then dx=dx-1
140 if (jj=8 and dx < 10) then dx=dx+1
142 poke vic+2,x+dx : poke vic+3,y-8+abs(dx/2) : poke(vic+21),3
145 goto 110

Bu sefer ateşi bırakana  kadar dy'yi arttırıyorum.

150 rem ***** ziplama hizi *****
155 dy=0
160 jj=peek(56320) : if (jjand16)<>0 goto 180
165 if dy<-10 then goto 180
170 dy=dy-0.5: poke vic+3,peek(vic+3)-1:goto 160

Sonra da dy ve dx görene zıplama animasyonu hesabı

180 rem ***** ziplama *****
190 poke 2040,193 : poke vic+21,1
200 ifx+dx>255 then side=3
210 ifx+dx<0 then side=0
220   x=x+dx : y=y+dy : x=xand255 : poke(vic),x : poke(vic+1),y : poke(vic+16),side
230   dy=dy+1 : if dy<0 goto 200
240
250 ifx+dx>255 then side=3
260 ifx+dx<0 then side=0
270 x=x+dx : y=y+dy : x=xand255 : poke(vic),x : poke(vic+1),y : poke(vic+16),side
280 dy=dy+1
290 if peek(vic+1)<200 then 190
300 poke 2040,192
390 goto 100

Bu algoritmanın ilk hali, 10 satıra indirmek için daha çok çalışmam lazım. Sonucu da aşağıda.

« Son Düzenleme: Şubat 18, 2016, 08:45:06 ÖÖ Gönderen: wizofwor » Logged

NoStres
Deneyimli
*****
Mesaj Sayısı: 633


One Love, One Heart, One Destiny


Üyelik Bilgileri WWW
« Yanıtla #7 : Şubat 18, 2016, 09:06:25 ÖÖ »

Yarışmanın resmi sitesi "gkanold.wix.com" bu mudur?
Logged

wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #8 : Şubat 18, 2016, 10:41:47 ÖÖ »

Evet doğrudur. İlk mesaja biraz daha ilave bilgi ekledim. Bu bir kaç senedir düzenlenen bir yarışma. Aslında her sene Atariage forumunda da başlığı oluyordu ama bu sene açımamışlar yada ben bulamadım. İlgilenen atariciler için geçen seneki başlığın linkini vereyim: http://atariage.com/forums/topic/234337-basic-ten-liners-contest-2015/
Logged

NoStres
Deneyimli
*****
Mesaj Sayısı: 633


One Love, One Heart, One Destiny


Üyelik Bilgileri WWW
« Yanıtla #9 : Şubat 18, 2016, 13:52:58 ÖS »

Bir ara QBasic'ğe merak salmıştım; C64 basic hiç tecrübem yok, emülatör'de deneyim dedim, yazma ve derleme olayına ısınamadım.

Katılacak arkadaşlara bol şanslar.
Logged

NoStres
Deneyimli
*****
Mesaj Sayısı: 633


One Love, One Heart, One Destiny


Üyelik Bilgileri WWW
« Yanıtla #10 : Şubat 19, 2016, 11:39:40 ÖÖ »

Qbasic'deki; screen, sound gibi komutları desteklemiyor sanırım, C64 çözünülürlüğü  <320×200 Pixel - 16 Renk> bunun üzerine çıkılamıyor mu?


Yardımcı olabilecek linkler;

C64 Basic kütüphanesi :
http://www.lemon64.com/manual/

Komutları denemek için karakter küçültücü :
http://www.erenet.info/harf_kucultucu_buyutucu.php
« Son Düzenleme: Şubat 19, 2016, 11:43:45 ÖÖ Gönderen: NoStres » Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #11 : Şubat 19, 2016, 11:57:21 ÖÖ »

@wizofwor, güzel oluyor... Sen katılacak mısın?
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #12 : Şubat 19, 2016, 12:11:45 ÖS »

Benim bu yarışmayı düşünmeden başladığım bir kaç çalışma var. Birisi daha önce aynı yarışmaya katılmış olan Atari oyunundan esinlenerek yazdığım mahjong oyunu. Onu forumda yayınlamıştım. Bu yüzden olmaz diye düşünüyorum. Videosunu koyduğum zıp zıp henüz tamam değil. Onu tamamlayıp, 10 satıra sığdırabilirsem katılmayı düşünyorum. Ama henüz başlayamadım.
« Son Düzenleme: Şubat 19, 2016, 12:14:14 ÖS Gönderen: wizofwor » Logged

blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #13 : Mart 20, 2016, 21:51:55 ÖS »

  10 satırılık basic yarışması için düşündüğüm ,  pinball oyunun zamansızlık nedeniyle kalmıştı.Bir kaç gündür.Önemli bir konu olana çarpışma kontrolleri için çalışma yapmıştım.İki farklı metod kullanılabilceğini öğrendim.Bir tanesi iki obje arasındaki uzaklığı ölçülmesi ile çarpışma olup olmadığına bakılıyor.Diğer ise iki obje'nin dikdörtgensel alanların kesişimine bakılıyor.aslında c64 sprite ,sprite ve zemin grafiği çarpışma için register kontrolü var.fakat çarpışma hangi yönde , hangi karakterle olduğu bilgisini vermiyor.sadece sprite  zemin grafiği etkileşimi var.bizim için sadece çarpışma değil , kordinat bilgileride gerekli.

   Birinci metod çok basit dik üçgek kuralı kullanılıyor.iki objenin merkezleri arasındaki uzaklığının bulunmasında dayanıyor.Aşağıda resimde Görsel açıklaması ile durumu belirtiyorum.

     İkinci metod ise objelerin etrafını dikdörtgensel bi alan ile sınırlayıp bunların kesişimin noktaların arasında mantıksal karşılaştırma yapıyoruz.Aşağıda resimde görsel olarak açıklaması ile durumu belirtiyorum.


   Bu iki metodunda yazılmsal uygulamasını yaptım gayet iyi çalışıyorlar.İş görüyor.Diyebilirim. Aşağıdaki videoda görebilirsiniz.


  Wizofwor , hatırlasan topun hızını , ivmesi kütlesini felan katarak fonksiyona bağlıyarak çözmeye çalışmıştım.Olayı daha basit indiğeyerek cebirsel işleme yapılabilceğini söylemiştin.

    Bende  konu ile ilgili olarak kuşbakışı futbol oyundaki bir futbolcu kontrolününde topun 0 ile 90 arasında 15 derece açı ile ve değişik hızda kısa uzun şut nasıl yapabilirim  diye düşündüm  ? Bu hareketin çok basit cebir işlem yapılabildiğini çözdüm.Aynı yönün x eksenide simetrisi 90 ile 180 arası top'un hareketini , y ve x eksenine göre simetrisinde 180-270 açı ile gidebildiğini, sadece y eksenine göre simetrsi alındığında 270 -360 açı ile topun sabit bir sayı ile kordinat toplamı sonucu  istenilen açıda gitmesini sağladığını gördüm.

  c64 üzerinde  küçük bir deneme yaptım.ve 0-90 derece arasında 15 derece farklarla futbolcu topu gönderebiliyor.





<a href="http://www.youtube.com/v/EkvhrOBWyqc&rel=0" target="_blank">http://www.youtube.com/v/EkvhrOBWyqc&rel=0</a>












<a href="http://www.youtube.com/v/4n3L4bP-MEM&rel=0" target="_blank">http://www.youtube.com/v/4n3L4bP-MEM&rel=0</a>










&nbsp;

« Son Düzenleme: Mart 20, 2016, 22:03:56 ÖS Gönderen: blackturk » Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
witchdoktor
Uzman
*****
Mesaj Sayısı: 6.238



Üyelik Bilgileri
« Yanıtla #14 : Mart 21, 2016, 11:22:45 ÖÖ »

@blackturk

Temel algılama güzel ama çarpışma açısı değerlendirilmediği için yansımalar hatalı oluyor sanırım.
Logged
Sayfa: [1] 2 3   Yukarı git
Yazdır
Gitmek istediğiniz yer: