Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
Animasyon kullanımında sorun yaşıyorum |
Yanıt Yaz |
Yazar | |
steelwing
Yeni Üye Kayıt Tarihi: 10 Temmuz 2024 Konum: Konya Durum: Aktif Değil Puanlar: 14 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı steelwing
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Gönderim Zamanı: 11 Eylül 2024 Saat 09:44 |
Animasyonumu istediğim şekilde çalıştıramıyorum. Çalışsa bile animasyon bittikten sonra clomosy uygulamasından atıyor.
|
|
steelwing
Yeni Üye Kayıt Tarihi: 10 Temmuz 2024 Konum: Konya Durum: Aktif Değil Puanlar: 14 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı steelwing
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
var MyForm: TclGameForm; AnaForm:TclGameForm; animasyon1:TclBitmapListAnimation; rectangle: Tclrectangle; ImgRifle, ImgSavan: TclProImage; DeviceMotionSensor: TClMotionSensor; LblDisplay: TclLabel; GameTimer: TclTimer; geribtn, BtnFire: TClProButton; circle1, circle2: tclcircle; SoundIndex: Integer; myDeviceManager: TclDeviceManager; number: Integer; procedure geriprcdr; begin TclProButton(MyForm.clFindComponent('BtnGoBack')).Click; end; procedure InitializeComponents; begin MyForm := TclGameForm.Create(Self); myDeviceManager := TclDeviceManager.Create; LblDisplay := MyForm.AddNewLabel(MyForm, 'LblDisplay', '--'); LblDisplay.Align := alTop; LblDisplay.Visible := False; // Initialize Joystick Circles circle1 := MyForm.AddNewCircle(MyForm, 'circle1'); circle1.Align := alNone; circle1.Width := 100; circle1.Height := 100; circle1.Position.X := MyForm.clWidth / 8; circle1.Position.Y := MyForm.clHeight * 83 / 150; circle2 := MyForm.AddNewCircle(MyForm, 'circle2'); circle2.Align := alNone; circle2.Width := 40; circle2.Height := 40; circle2.Position.X := circle1.Position.X + 30; circle2.Position.Y := circle1.Position.Y + 30; circle2.Visible := true; geribtn := MyForm.AddNewProButton(MyForm, 'geribtn', ''); clComponent.SetupComponent(geribtn, '{"Align" : "None","Width":70,"Height":50,"ImgUrl":"https://i.imgur.com/XUYO0A6.png"}'); MyForm.AddNewEvent(geribtn, tbeOnClick, 'geriprcdr'); geribtn.Position.X := 5; geribtn.Position.Y := 7; ImgSavan := MyForm.AddNewProImage(MyForm, 'ImgSavan'); ImgSavan.clSetImage('https://i.hizliresim.com/tw0gudt.png'); ImgSavan.Width := 800; ImgSavan.Height := 800; ImgSavan.Align := alCenter; ImgSavan.Position.X := 0; ImgSavan.Position.Y := 0; ImgSavan.hittest := false; clRTMethod(ImgSavan, 'SendToBack'); ImgRifle := MyForm.AddNewProImage(MyForm, 'ImgRifle'); ImgRifle.clSetImage('https://i.imgur.com/o5kq53m.png'); ImgRifle.Width := 150; ImgRifle.Height := 150; ImgRifle.Align := alNone; ImgRifle.Position.X := 180; ImgRifle.Position.Y := 250; MyForm.AddNewEvent(circle1, tbeOnMouseMove, 'MoveCircles'); ImgRifle.hittest := false; BtnFire := MyForm.AddNewProButton(MyForm, 'BtnFire', ''); BtnFire.Align := alNone; BtnFire.Width := 70; BtnFire.Height := 50; BtnFire.Position.X := 290; BtnFire.Position.Y := 550; BtnFire.clProSettings.PictureSource := 'https://i.imgur.com/HrjM4pf.png'; BtnFire.SetclProSettings(BtnFire.clProSettings); MyForm.AddNewEvent(BtnFire, tbeOnClick, 'BtnFireClick'); GameTimer := MyForm.AddNewTimer(MyForm, 'GameTimer', 5); GameTimer.Enabled := TRUE; MyForm.AddNewEvent(GameTimer, tbeOnTimer, 'MoveCircles'); end; procedure MoveCircles; var NewX, NewY: Single; begin // Joystick hareketi if (circle2.Position.X < MyForm.clFormMousePosX) then begin if (circle2.Position.X < circle1.Position.X + circle1.Height * 2 / 3) then begin circle2.Visible := True; circle2.Position.X := circle2.Position.X + 3; end; end else if (circle2.Position.X > MyForm.clFormMousePosX) then begin if (MyForm.clFormMousePosX > 0) then begin if (circle2.Position.X > circle1.Position.X) then begin circle2.Visible := True; circle2.Position.X := circle2.Position.X - 3; end; end; end; if (circle2.Position.Y < MyForm.clFormMousePosY) then begin if (circle2.Position.Y < circle1.Position.Y + circle1.Width * 2 / 3) then begin circle2.Visible := True; circle2.Position.Y := circle2.Position.Y + 3; end; end else if (circle2.Position.Y > MyForm.clFormMousePosY) then begin if (MyForm.clFormMousePosY > 0) then begin if (circle2.Position.Y > circle1.Position.Y) then begin circle2.Visible := True; circle2.Position.Y := circle2.Position.Y - 3; end; end; end; begin AnaForm := TCLGameForm.Create(Self); AnaForm.AddGameAssetFromUrl('https://i.imgur.com/BedqHXr.jpeg'); rectangle := AnaForm.AddNewCircle(AnaForm, 'rectangle'); rectangle.Fill.Kind := fbkBitmap; rectangle.Fill.Bitmap.WrapMode := fbwmTileStretch; rectangle.Width := 650; rectangle.Height := 620; rectangle.Stroke.Thickness := 1; animasyon1 := AnaForm.AddNewBitmapListAnimation(rectangle,'animasyon1'); animasyon1.AnimationBitmap.LoadFromFile(clomosy.appfilespath + '/BedqHXr.jpeg'); animasyon1.Stop; animasyon1.AnimationCount := 6; animasyon1.AnimationRowCount := 2; animasyon1.Delay := 0; animasyon1.Duration := 0.75; animasyon1.AutoReverse := True; animasyon1.Enabled := True; animasyon1.Loop := True; animasyon1.Start; AnaForm.Run; end; // ImgRifle'nin Joystick'e göre hareketi NewX := ImgRifle.Position.X + (circle2.Position.X - (circle1.Position.X + 30)) / 10; NewY := ImgRifle.Position.Y + (circle2.Position.Y - (circle1.Position.Y + 30)) / 10; // Sınır kontrolleri if NewX < 0 then NewX := 0 else if NewX > MyForm.clWidth - ImgRifle.Width then NewX := MyForm.clWidth - ImgRifle.Width; if NewY < 0 then NewY := 0 else if NewY > MyForm.clHeight - ImgRifle.Height then NewY := MyForm.clHeight - ImgRifle.Height; // Pozisyonu güncelle ImgRifle.Position.X := NewX; ImgRifle.Position.Y := NewY; // Joystick resetleme if (MyForm.clFormMousePosX < 0) then begin circle2.Position.X := circle1.Position.X + 30; circle2.Position.Y := circle1.Position.Y + 30; circle2.Visible := False; end; end; begin InitializeComponents; if Clomosy.PlatformIsMobile then MyForm.Run; end; |
|
Developer
Forum Yöneticisi Kayıt Tarihi: 14 Haziran 2023 Durum: Aktif Değil Puanlar: 354 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Developer
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
Merhaba Steelwing,
AnaForm := TCLGameForm.Create(Self); AnaForm.AddGameAssetFromUrl('https://i.imgur.com/BedqHXr.jpeg'); rectangle := AnaForm.AddNewCircle(AnaForm, 'rectangle'); rectangle.Fill.Kind := fbkBitmap; rectangle.Fill.Bitmap.WrapMode := fbwmTileStretch; rectangle.Width := 650; rectangle.Height := 620; rectangle.Stroke.Thickness := 1; animasyon1 := AnaForm.AddNewBitmapListAnimation(rectangle,'animasyon1'); animasyon1.AnimationBitmap.LoadFromFile(clomosy.appfilespath + '/BedqHXr.jpeg'); animasyon1.Stop; animasyon1.AnimationCount := 6; animasyon1.AnimationRowCount := 2; animasyon1.Delay := 0; animasyon1.Duration := 0.75; animasyon1.AutoReverse := True; animasyon1.Enabled := True; animasyon1.Loop := True; animasyon1.Start; AnaForm.Run; Bu kod her seferinde tekrar çalışıyor. Bu hata bundan kaynaklı.
|
|
Yanıt Yaz | |
Tweet |
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |