Sayfayı Yazdır | Pencereyi Kapat

Jireskop özelliği

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=533
Tarih: 07 Ocak 2025 Saat 23:27
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Jireskop özelliği
Mesajı Yazan: ibrahimethem
Konu: Jireskop özelliği
Mesaj Tarihi: 31 Temmuz 2023 Saat 14:58
Ufo oyunun jireskop özelliğini kullanarak futbol oyunu yapmak için uğraşıyorum fakat telefonu yan çevirdiğim zaman jireskop çalışmıyor yan şekilde çalışmak istiyorum bunun için bi çözüm var mı?




Cevaplar:
Mesajı Yazan: Alforce
Mesaj Tarihi: 31 Temmuz 2023 Saat 15:30
Jiroskop özelliğini şuan tekrar denedim, çalışıyor.

Belki telefonunuz desteklemiyor olabilir.


Mesajı Yazan: ibrahimethem
Mesaj Tarihi: 31 Temmuz 2023 Saat 15:39
Jireskop un çalışmasında herhangi bir sorun olmuyor telefon ekranını yan çevirdiğim zaman çalışmıyor


Mesajı Yazan: Alforce
Mesaj Tarihi: 31 Temmuz 2023 Saat 16:56
Mümkünse hata yaşadığınız kodu paylaşır mısınız?


Mesajı Yazan: ibrahimethem
Mesaj Tarihi: 31 Temmuz 2023 Saat 18:12
Var
  MyForm:TclGameForm;
  ImgBall, ImgHole:TclProImage;
  DeviceMotionSensor:TClMotionSensor;
  LblDisplay:TclLabel;
  GameTimer:TClTimer;
  BtnStartGame:TclButton;
  SoundIndex:Integer;
  myDeviceManager:TclDeviceManager;
  HoleMin_X,HoleMax_X : Single; // Ball must be placed inside these coordinates
  HoleMin_Y,HoleMax_Y : Single;
  function isBallinTheHole: Boolean;
  var
    centX,CentY : Single;
  begin
    Result := False;
    centX := ImgBall.Position.X + (ImgBall.Width/2);
    centY := ImgBall.Position.Y + (ImgBall.Height/2);
    if (centX <= HoleMax_X) and (centX >= HoleMin_X) and
       (centY <= HoleMax_Y) and (centY >= HoleMin_Y) then
      Result := True;
  end;
  Procedure ProcOnGameTimer;
  Const 
    BallSpeed = 5;
  begin
    
    If Clomosy.PlatformIsMobile Then
    Begin
      Case DeviceMotionSensor.GetDirectionX of 
        1:ImgBall.Position.X := ImgBall.Position.X - BallSpeed;//Move left
        2:ImgBall.Position.X := ImgBall.Position.X + BallSpeed;//Move right
      End;
      Case DeviceMotionSensor.GetDirectionY of 
        1:ImgBall.Position.Y := ImgBall.Position.Y - BallSpeed;//Move up
        2:ImgBall.Position.Y := ImgBall.Position.Y + BallSpeed;//Move down
      End;
      if (ImgBall.Position.X + ImgBall.Width) > TForm(MyForm).ClientWidth then  // Form Right border control
        ImgBall.Position.X := TForm(MyForm).ClientWidth - ImgBall.Width;
    
      if (ImgBall.Position.X) < 0 then // Left border control
        ImgBall.Position.X := 0;
    
      if (ImgBall.Position.Y + ImgBall.Height) > TForm(MyForm).ClientHeight then  // Form Bottom border control
        ImgBall.Position.Y := TForm(MyForm).ClientHeight - ImgBall.Height;
    
      if (ImgBall.Position.Y < 0) then  // Top border control
        ImgBall.Position.Y := 0;
        
      if isBallinTheHole then
      begin
        GameTimer.Enabled := False;
        ImgBall.Position.X := HoleMin_X;
        ImgBall.Position.Y := HoleMin_Y;
        //ShowMessage(ImgBall.Position.X);
        If Clomosy.PlatformIsMobile Then DeviceMotionSensor.Active := False;//game stopped
        BtnStartGame.Text := 'START GAME';
        MyForm.PlayGameSound(SoundIndex);
        myDeviceManager.Vibrate(1000);
        ShowMessage('Tebrikler');
        //Buraya
      end;
        
    End;
  End
  Procedure BtnStartGameClick;
  begin
    GameTimer.Enabled := Not GameTimer.Enabled;
    If GameTimer.Enabled Then BtnStartGame.Text := 'STOP GAME' ELSE BtnStartGame.Text := 'START GAME';
    If GameTimer.Enabled Then
    Begin
      ImgBall.Align := alNone;
      ImgBall.Position.x := 0;
      ImgBall.Position.y := 0;
      If Clomosy.PlatformIsMobile Then DeviceMotionSensor.Active := True;
    End Else If Clomosy.PlatformIsMobile Then DeviceMotionSensor.Active := False;//game stopped
  End;
  
Begin
  //exit;
  MyForm := TclGameForm.Create(Self);
  myDeviceManager := TclDeviceManager.Create;
  MyForm.SetFormBGImage('https://i.hizliresim.com/hlu0bfg.jpeg');
  
  MyForm.AddGameAssetFromUrl('https://www.clomosy.com/game/assets/win.wav');
  SoundIndex := MyForm.RegisterSound('win.wav');
  MyForm.SoundIsActive:=True;
  
  LblDisplay:= MyForm.AddNewLabel(MyForm,'LblDisplay','--');
  LblDisplay.Align := alTop;
  LblDisplay.Visible := False;
  
  
  BtnStartGame:= MyForm.AddNewButton(MyForm,'BtnStartGame','START GAME');
  BtnStartGame.Align := alBottom;
  BtnStartGame.Height:=30;
  BtnStartGame.StyledSettings := ssFamily;
  BtnStartGame.TextSettings.FontColor := clAlphaColor.clHexToColor('#FFFFFF');
  BtnStartGame.Margins.Bottom := 50;
  //BtnStartGame.Visible := False;
  MyForm.AddNewEvent(BtnStartGame,tbeOnClick,'BtnStartGameClick');
  
  
  ImgHole := MyForm.AddNewProImage(MyForm,'ImgHole');
  ImgHole.clSetImage('https://clomosy.com/educa/station.png');
  ImgHole.Margins.Top:=820;
  ImgHole.Margins.Bottom:=55;
  ImgHole.Properties.AutoSize := False;

  ImgBall := MyForm.AddNewProImage(MyForm,'ImgBall');
  ImgBall.clSetImage('https://i.hizliresim.com/sz38vc4.png');
  ImgBall.Width := 50;
  ImgBall.Height := 50;
  
  ImgBall.Align := alCenter;
  
  //ShowMessage(ImgBall.Position.Y);
  HoleMin_X := ImgBall.Position.X;
  HoleMax_X := HoleMin_X + ImgBall.Width; // Ball must be placed inside these coordinates
  
  HoleMin_Y := ImgBall.Position.Y+18;//LblDisplay.Visible true oldugunda orta nokta alınırken android de yanlış hesaplanıyor
  HoleMax_Y := HoleMin_Y + ImgBall.Height;
  ImgBall.Align := alNone;
  ImgBall.Position.Y := HoleMin_Y;
  //ShowMessage(ImgBall.Position.Y);
  //ShowMessage(HoleMin_Y);
  DeviceMotionSensor := MyForm.AddNewSensorsMotion(MyForm,'DeviceMotionSensor');
  GameTimer:= MyForm.AddNewTimer(MyForm,'GameTimer',1000);
  GameTimer.Interval := 30;//30 m.saniye aralıklarla 
  GameTimer.Enabled := False;
  MyForm.AddNewEvent(GameTimer,tbeOnTimer,'ProcOnGameTimer');
  
  MyForm.Run;
  
End;


Mesajı Yazan: Alforce
Mesaj Tarihi: 31 Temmuz 2023 Saat 18:25
Telefonu yan yatırdığınız zaman X ve Y kordinatının değiştiğini unutmayın.

Bunu deneyin.


Mesajı Yazan: ibrahimethem
Mesaj Tarihi: 01 Ağustos 2023 Saat 09:10
Z koordinatlarını mı kullanmam gerekiyor ?




Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net