Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4.5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Hareket ettirme
#1
Merhaba;

Timer ile belirli aralıklarla Glyph create ediyorum (düşman gemisi) pozisyonlarında belirmiş olduğum formun bir yerinden ortaya çıkıyor, buraya kadar bir sıkıntı yok fakat bu gemilerin birbirinden bağımsız olarak hareket etmelerini nasıl sağlarım?

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

procedure TForm1.Timer2Timer(Sender: TObject);
var
  GlyphDusman: TGlyph;
begin
  GlyphDusman := TGlyph.Create(Self);
  GlyphDusman.Parent := Self;
  GlyphDusman.Align := TAlignLayout.None;
  GlyphDusman.Images := DusmanUcak;
  GlyphDusman.Height := 70;
  GlyphDusman.Width := 40;
  GlyphDusman.Position.Y := DusGemiTop;
  GlyphDusman.Position.X := DusPozition[RandomRange(0, 5)];
  if GlyphDusman.Images <> Nil then
  begin
    GlyphDusman.ImageIndex := DusGemiSec[RandomRange(0, 5)];
  end;
end;
Cevapla
#2
(07-07-2017, Saat: 17:05)brs Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba;

Timer ile belirli aralıklarla Glyph create ediyorum (düşman gemisi) pozisyonlarında belirmiş olduğum formun bir yerinden ortaya çıkıyor, buraya kadar bir sıkıntı yok fakat bu gemilerin birbirinden bağımsız olarak hareket etmelerini nasıl sağlarım?

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

procedure TForm1.Timer2Timer(Sender: TObject);
var
  GlyphDusman: TGlyph;
begin
  GlyphDusman := TGlyph.Create(Self);
  GlyphDusman.Parent := Self;
  GlyphDusman.Align := TAlignLayout.None;
  GlyphDusman.Images := DusmanUcak;
  GlyphDusman.Height := 70;
  GlyphDusman.Width := 40;
  GlyphDusman.Position.Y := DusGemiTop;
  GlyphDusman.Position.X := DusPozition[RandomRange(0, 5)];
  if GlyphDusman.Images <> Nil then
  begin
    GlyphDusman.ImageIndex := DusGemiSec[RandomRange(0, 5)];
  end;
end;
   Merhabalar hocam, sanırsam size algoritmik olarak yardımcı olabilirim. Öncelikle birkaç hareket şablon oluşturun ve create etmiş olduğunuz uçaklara isimler verdikten sonra rastgele şablonları veriniz. Bu sebeple rastgele ve bağımsız biçimde hareketlerini yapacaklardır.

 Youtube'de oyun konularında gerçekten iyi olan, ve işini hakkıyla veren bir kanal var. Bunu sizinle paylaşayım umarım bir fikir verme mahiyetinde size yararı dokunur.

 Bkz. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

İyi çalışmalar,
Saygılarımla.
May the force be with you!
Cevapla
#3
(07-07-2017, Saat: 20:12)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol Youtube'de oyun konularında gerçekten iyi olan, ve işini hakkıyla veren bir kanal var. Bunu sizinle paylaşayım umarım bir fikir verme mahiyetinde size yararı dokunur.

 Bkz. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

İyi çalışmalar,
Saygılarımla.

Fikir kafam oluştu gibi, rica etsen biraz daha ayrıntı verir misiniz?
Cevapla
#4
(08-07-2017, Saat: 02:05)brs Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(07-07-2017, Saat: 20:12)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol Youtube'de oyun konularında gerçekten iyi olan, ve işini hakkıyla veren bir kanal var. Bunu sizinle paylaşayım umarım bir fikir verme mahiyetinde size yararı dokunur.

 Bkz. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

İyi çalışmalar,
Saygılarımla.

Fikir kafam oluştu gibi, rica etsen biraz daha ayrıntı verir misiniz?

   Tekrar merhabalar;

Şablonlar yani hareket fonksiyon veya prosedürleri oluşturursunuz. Sonra bu prosedürleri oluşturduğunuz uçaklara rastgele atarsınız, birbirinden bağımsız harekete geçmesini sağlarsınız;

Tam olarak demek istediğim;

procedure Hareket1(glyph ataması icin gerekli değisken ataması);
begin
// Hareket kodlarınız…
End;
May the force be with you!
Cevapla
#5
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kod okumanızın da size fayda sağlayacağı kanaatindeyim daha önce yapılmış örnekler size farklı bakış açıları da kazandırabilir.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
bir ara ücretsizdi

“Do. Or do not. There is no try.”
Cevapla
#6
Teşekkür ederim.
Cevapla
#7
Konuyu biraz daha "story" olarak işlememiz gerekirse;

Yapacağınız bağımsız hareketler için bu bağımsız hareketlerin her birisini ayrı ayrı prosedür olarak tanımlamanız gerekir. Bunu yapmanın en pratik yolu kaç farklı hareket istiyorsanız o kadar uzunlukta bir integer array değişken oluşturmanız ve bu değişkenin değerini rastgele (random) olarak atamanız.

Böylece;

TGlyphMovements = array of Integer;

tipini oluşturduktan sonra global tutacağınız değişkeni (AMovements:TGlyphMovements;) formun constructor'ında doldurun. (Örn. 1-2-3-4-5-6-7-8)

HareketEttir(AGlyphDusman:TGlyph;AMovement:TGlyphMovements); imzalı prosedürünüzü oluşturduktan sonra;

Kullanım olarak: HareketEttir(dusman,randomSayi); olarak yönetimini sağlayabilirsiniz.
{ talk is cheap show me the code. }
Cevapla

Konuyu Paylaş : facebook gplus twitter





Konuyu Okuyanlar: 1 Ziyaretçi