亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rltgame.pas

?? 一般的數據庫管理系統 uses Classes, SConnectEx, TltConst, ExtCtrls, MMSystem, Types, windows, TltLogic , Sy
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit rltgame;

interface

uses
  Classes, Types, DXInput, DXDraws, Graphics, Windows, SysUtils, TltConst,
  math, ULoading, Forms;

type
 TPlayData = record
    //PlayData : array[0..60000] of Byte;   //PlayData  60001
    Name : string[3];                     //Name          4
    playerType : Byte;                    //Type          1
    score : LongInt;                      //score         4
    Dif : shortint;                       //難度        1
//    State : TPlayerState;                         //Stage         1     = 60012
  end;

  TRlt = class
  private
    FHasInit : boolean;
    FCurrentRoundNo: integer;
    FRoundScord: TRoundScord;
//    FCountDown: integer;
    FRoundBeginTime : DWord;
    FRealWheelParams : TWheelParams;
    WheelParamChanged : boolean;
    procedure DoBeting;
    procedure DoBeforeWheel;
    procedure DoPaused;
    procedure DoWheeling;
    procedure DoScore;
    procedure DoDemo;
    procedure DoStop;
    function GetCountDown: integer;
    procedure SetCurrentRoundNo(const Value: integer);
  public
    Round : TRound;
    ErrorCode : Byte;
    TimeSetting : TTimeSetting;
    WheelParams : TWheelParams;
    CurrentWheelParam : TWheelParam;
    procedure Draw;
    procedure Update;
    constructor Create();
    function DoInit: boolean;
    procedure DoFinit;
    procedure UpdateWheelParams;
    procedure UpdateWheel;
    procedure SetRound(const Value: TRound);
  published
    property CurrentRoundNo : integer read FCurrentRoundNo write SetCurrentRoundNo;
    property CountDown : integer read GetCountDown;
//    property RoundState : TRound read FRoundState write FRoundState;
  end;

  TPlayerPanelState = (ppsNoBody, ppsLogining, ppsLoginError, ppsActive, ppsLoginOtherWay, ppsUnknow);
  TPlayer = class
  private
    FRBet : LongInt;
    FBBet : LongInt;
    FGBet : LongInt;
    function GetBBet: LongInt;
    function GetGBet: LongInt;
    function GetRBet: LongInt;
    procedure SetBBet(const Value: LongInt);
    procedure SetGBet(const Value: LongInt);
    procedure SetRBet(const Value: LongInt);
  public
    UserID : String;
    Password : String;
    money : LongInt;
    State : TPlayerState;
    Modified : boolean;
    procedure ClearBets;
    procedure Update;
    property RBet : LongInt read GetRBet write SetRBet;
    property BBet : LongInt read GetBBet write SetBBet;
    property GBet : LongInt read GetGBet write SetGBet;
    procedure Clear;
  end;

  TPlayerPanel = class
  private
    //page1
    LoginButtomRect : TRect;
    //page2
    UserIDBox : TRect;
    PasswordBox : TRect;
    OKButtomRect : TRect;
    CancelButtomRect : TRect;
    LogoutButtomRect : TRect;
    //page3
    UserIDLabel : TRect;
    ScoreLabel : TRect;
    MsgLable : TRect;
    Msg2Lable : TRect;
    RBox : TRect;
    BBox : TRect;
    GBox : TRect;
    //LogoutButtomRect : TRect;
    //page4
    ErrorLabel : TRect;
    InputCount : integer;
    Cursor : TPoint;
    procedure SetState(const Value: TPlayerPanelState);
  public
    UserName : String;
    Password : String;
    Player : TPlayer;
    FouceID : byte;
    FState : TPlayerPanelState;
    BoundsRect : TRect;
    ClientRect : TRect;
    Eabled : boolean;
    procedure Update(CursorPos : TPoint; MouseState : byte; Key : Word);
    procedure Draw(DestSurface : TDirectDrawSurface; PlayPanelFrame,ItemsSurface : TDirectDrawSurface);
    property State : TPlayerPanelState read FState write SetState;
    constructor Create(Player : TPlayer);
    function OverButton(CursorPos: TPoint; R : TRect): boolean ;
  end;

  TChipPanel = class
  private
    FCursorPos : TPoint;
    ChipRect : array [0..4] of TRect;
    FSelectedChip: longint;
    procedure SetSelectedChip(const Value: longint);
    function GetSelectedChipValue: longint;
    function OverButton(CursorPos: TPoint; R: TRect): boolean;
  public
    BoundsRect : TRect;
    ClientRect : TRect;
    property SelectedChip : longint read FSelectedChip write SetSelectedChip;
    property SelectedChipValue : longint read GetSelectedChipValue;
    procedure Update(CursorPos : TPoint; MouseState : byte; Key : Word);
    procedure Draw(DestSurface, ChipPanelSurface, ItemsSurface : TDirectDrawSurface);
    constructor Create();
  end;

  TTimePanel = class
    Time : integer;
    BoundsRect : TRect;
    ClientRect : TRect;
    TimeLabelRect : TRect;
    RoundLabelRect : TRect;
    Color : TColor;
    procedure Update(CursorPos : TPoint; MouseState : byte; Key : Word);
    procedure Draw(DestSurface, PanelSurface, ItemsSurface : TDirectDrawSurface);
    constructor Create();
  end;

  THistoryPanel = class
    BoundsRect : TRect;
    ClientRect : TRect;
    procedure Update(CursorPos : TPoint; MouseState : byte; Key : Word);
    procedure Draw(DestSurface, PanelSurface, ItemsSurface : TDirectDrawSurface);
    constructor Create();
  end;

var
  rlt : TRlt;
  Players : array [0..3] of TPlayer;
  PlayerPanel : array [0..3] of TPlayerPanel;
  ChipPanel : TChipPanel;
  TimePanel : TTimePanel;
  HistoryPanel : ThistoryPanel;
//  PPD : TPlayData;
  Level1,Level2,Flag1 : Integer;
  Frame1,FrameRate : Integer;
  FrameTime : LongInt;
  LastTime : LongInt;
  MouseState : byte;

implementation

uses rltClient, Main;

{ TRlt }
procedure TRlt.Draw;
begin
  try
    case Round.State of
      rsWaitToBegin, rsPaused:
      begin
        MainForm.DrawRoulette;
        MainForm.DrawHistoryPanel;
        MainForm.DrawPlayerPanels;
        MainForm.DrawPaused;
        MainForm.DrawMouse;
        {draw wait}
      end;
      rsBeting:
      begin
        MainForm.DrawRoulette;
        MainForm.DrawTimePanel;
        MainForm.DrawChipPanel;
        MainForm.DrawPlayerPanels;
        MainForm.DrawHistoryPanel;
        MainForm.DrawMouse;
      end;
      rsBeforeWheel:
      begin
        MainForm.DrawRoulette;
        MainForm.DrawTimePanel;
        MainForm.DrawPlayerPanels;
//        MainForm.DrawChipPanel;
//        MainForm.DrawHistoryPanel;
        MainForm.DrawMouse;
      end;
      rsWheeling:
      begin
        MainForm.DrawRoulette;
        MainForm.DrawScore;
        MainForm.DrawMouse;
      end;
      rsScore:
      begin
        MainForm.DrawRoulette;
        MainForm.DrawMouse;
  //      MainForm.DrawPaused;
      end;
    end;
    //MainForm.DrawFPS;
    MainForm.DXDraw.Flip;
  Except
    if not MainForm.DXDraw.CanDraw then
    begin
      try
        MainForm.DXDraw.Finalize;
        MainForm.DXDraw.Initialize;
      except
      end;
    end;
  end;
end;

var
  ii: integer;

procedure TRlt.Update;
begin
//update game state;
  if (not FHasInit) and (not DoInit) then Exit;
  case Round.State of
    rsWaitToBegin:
    begin
    {}
    end;
    rsDemo{開始本輪}:
    begin
      DoDemo;
    end;
    rsBeting{下注}:
    begin
      DoBeting;
    end;
    rsBeforeWheel{準備開局}:
    begin
      DoBeforeWheel;
    end;
    rsWheeling{轉盤}:
    begin
      DoWheeling;
    end;
    rsScore{分數}:
    begin
      DoScore;
    end;
    rsPaused{系統暫停}:
    begin
      DoPaused;
    end;
    rsStop :
    begin
      DoStop;
    end;
    //, rsSyn{數據同步});
  end;
  MainForm.KeyList.Clear;
  MouseState := 0;
  UpdateWheel;
end;

procedure TRlt.DoBeting;
var
  I, J: integer;
  Key : word;
  P : TPoint;
begin
// 開始新一局
  if Level2 =1 then
  begin
    FRoundBeginTime := LastTime - Round.CountDown*1000 + 1000;//誤差
    MainForm.PlaySoundBeginBet;
    Level2 := 2;
  end;

  //update
  GetCursorPos(P);
  P := MainForm.DXDraw.ScreenToClient(P);
  if MainForm.KeyList.Count>0 then begin
    for J := 0 to MainForm.KeyList.Count -1 do begin
      Key := Word(MainForm.KeyList[J]);
      for I := 0 to 3 do begin
        PlayerPanel[I].Update(P,MouseState, Key);
      end;
    end;
  end else begin
    for I := 0 to 3 do begin
      PlayerPanel[I].Update(P,MouseState, 0);
    end;
    ChipPanel.Update(P, MouseState, 0);
    TimePanel.Update(P, MouseState, 0);
    HistoryPanel.Update(P, MouseState, 0);
  end;
end;


constructor TRlt.Create;
begin
  FHasInit := false;
  Round.State := rsWaitToBegin;
  Level2 := 1;
end;

procedure TRlt.DoFinit;
begin

end;

function TRlt.DoInit : boolean;
begin
//1,第一次登入,2掉線后恢復登入
//syn server Roundstate 1.RoundNo, RoundScord,RoundState,PassTime,RoundCounter,
//RoundSetting.
  Result := false;
  if not RltConnection.Connected then Exit;
//  Round := TltInterpreter.CallGetCurrentRound;
//WaitRoundToBegin;
  Round.State := rsWaitToBegin;
  Level2 := 1;
//  FRoundScord := TltInterpreter.CallGetScore(Round.No, Round.WheelNo);
  WheelParams := TltInterpreter.CallGetWheelParams;

  FRoundBeginTime :=LastTime - WheelParams.WheelStartTickCount;
  UpdateWheelParams;
  FHasInit := true;
  Result := true;
end;

procedure TRlt.DoBeforeWheel;
begin
  if Level2 = 1 then begin
    MainForm.PlaySoundStopBet;
    Level2 := 2;
  end;
end;

procedure TRlt.DoPaused;
begin

end;

procedure TRlt.DoScore;
begin
  if Level2 =1 then begin
    MainForm.PlaySoundNum(Round.WheelResult);
    Level2 := 2;
  end;
end;

procedure TRlt.DoWheeling;
begin

end;

procedure TRlt.DoDemo;
begin

end;

function TRlt.GetCountDown: integer;
begin
  Result := TimeSetting.BeforeWheelTimeSet - Round.CountDown;
  if Result <=0 then Result := 0;
end;

procedure TRlt.SetCurrentRoundNo(const Value: integer);
begin
  FCurrentRoundNo := Value;
end;

procedure TRlt.UpdateWheelParams;
begin
  //更新了旋轉參數,將速度進行適當的調整,以達到目的結果;
  FRealWheelParams := WheelParams;
  CurrentWheelParam := FRealWheelParams.Params[0];
end;

procedure TRlt.UpdateWheel;
var
  DT : integer;
  i : integer;
  V : single;
  DV : single;
  MaxFrameTime : integer;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久一二区| 日本不卡视频在线观看| 国产女同互慰高潮91漫画| 精品少妇一区二区三区| 欧美不卡一区二区三区| 精品国产亚洲在线| 久久午夜电影网| 国产精品视频线看| 亚洲黄色免费网站| 亚洲一区二区三区三| 日本亚洲天堂网| 九一久久久久久| 国产乱码精品一区二区三区忘忧草| 国产综合久久久久影院| 国产九色精品成人porny| 国产高清无密码一区二区三区| 国产成人免费av在线| 成人福利视频在线看| 91丝袜美女网| 555www色欧美视频| 精品国产污污免费网站入口| 欧美—级在线免费片| 亚洲美女在线国产| 日韩精彩视频在线观看| 韩国av一区二区三区在线观看| 国产精品综合网| 99在线视频精品| 91高清视频在线| 日韩一卡二卡三卡| 国产夜色精品一区二区av| 亚洲视频一区在线| 日韩中文欧美在线| 国产一级精品在线| 色综合中文字幕国产 | 国产一区二区精品久久99| 国产一区在线观看麻豆| 91同城在线观看| 欧美一区欧美二区| 国产日产欧美一区| 亚洲一区二区三区中文字幕| 久久国产精品99精品国产| 高潮精品一区videoshd| 欧美色欧美亚洲另类二区| 欧美电视剧在线看免费| 中文字幕一区二区三区在线播放| 亚洲.国产.中文慕字在线| 国产精品自在在线| 欧美性生活久久| www国产精品av| 亚洲成人免费看| 懂色av一区二区夜夜嗨| 91精品国产色综合久久| 亚洲欧洲日韩综合一区二区| 亚洲电影一区二区| 盗摄精品av一区二区三区| 欧美日韩一级片在线观看| 国产日韩欧美综合在线| 五月综合激情婷婷六月色窝| 粉嫩久久99精品久久久久久夜| 欧美日韩国产123区| 国产精品免费视频观看| 久久99精品国产麻豆不卡| 91麻豆swag| 国产日韩av一区| 久久99热国产| 666欧美在线视频| 亚洲精品久久7777| voyeur盗摄精品| 久久综合资源网| 日韩经典一区二区| 欧美视频一区二区三区在线观看 | 欧美国产亚洲另类动漫| 午夜精品影院在线观看| 一本色道综合亚洲| 国产精品无人区| 国产精品一区一区三区| 日韩欧美一区在线| 图片区小说区国产精品视频| 色94色欧美sute亚洲线路一久 | 亚洲图片欧美视频| 成人精品高清在线| 国产欧美日韩在线| 国内精品写真在线观看| 日韩欧美一级片| 秋霞成人午夜伦在线观看| 欧美日本在线观看| 亚洲午夜一区二区| 在线亚洲人成电影网站色www| 国产精品卡一卡二| 成人网页在线观看| 亚洲国产成人午夜在线一区| 国产精品一二三区在线| 26uuu国产在线精品一区二区| 久久国产综合精品| www久久精品| 国产精品一线二线三线精华| 久久日韩精品一区二区五区| 久久成人免费网| 精品噜噜噜噜久久久久久久久试看| 偷拍亚洲欧洲综合| 在线不卡中文字幕| 欧美aⅴ一区二区三区视频| 欧美精品一二三四| 美日韩一区二区三区| 日韩视频免费观看高清在线视频| 日韩不卡一二三区| 欧美α欧美αv大片| 狠狠色丁香九九婷婷综合五月| 日韩美一区二区三区| 精品一区二区三区的国产在线播放 | 国产成人在线影院| 国产欧美日本一区二区三区| 国产成人自拍网| 专区另类欧美日韩| 欧美日韩一区久久| 日产精品久久久久久久性色| 精品久久久久久久久久久久久久久| 九九九精品视频| 国产日产精品1区| av激情亚洲男人天堂| 亚洲精品日日夜夜| 3751色影院一区二区三区| 男女男精品视频网| 久久嫩草精品久久久精品一| 成人av免费在线| 亚洲图片欧美综合| 精品国产青草久久久久福利| 丁香婷婷深情五月亚洲| 亚洲码国产岛国毛片在线| 欧美日韩视频在线第一区| 免费成人av资源网| 国产精品久久久久婷婷| 欧美这里有精品| 久久精品国产久精国产爱| 国产精品久99| 欧美精品色综合| 国产精品一二一区| 亚洲一区二区精品3399| 久久一夜天堂av一区二区三区| 91在线视频免费观看| 丝瓜av网站精品一区二区| 国产欧美综合在线| 欧美日韩亚洲国产综合| 狠狠色狠狠色综合系列| 亚洲欧美国产毛片在线| 日韩精品综合一本久道在线视频| 福利电影一区二区| 亚洲成人综合视频| 欧美国产一区二区| 日韩一区二区三区四区| 成人午夜免费av| 男人的天堂久久精品| 专区另类欧美日韩| 精品成人一区二区| 欧美亚洲综合在线| 成人午夜在线视频| 久草在线在线精品观看| 亚洲国产视频网站| 国产精品久久二区二区| 欧美大片一区二区| 欧美亚洲动漫制服丝袜| 国产一区二区影院| 日韩极品在线观看| 亚洲欧美另类久久久精品2019| 26uuuu精品一区二区| 欧美嫩在线观看| 99热精品国产| 国产精品77777竹菊影视小说| 亚洲成年人影院| 亚洲视频一二三区| 久久久精品欧美丰满| 日韩视频在线你懂得| 欧美系列亚洲系列| 成人高清视频在线观看| 久久狠狠亚洲综合| 日韩国产欧美在线观看| 亚洲人成在线播放网站岛国| 国产亚洲福利社区一区| 欧美一区二区三区婷婷月色| 欧美三级在线播放| 97精品久久久午夜一区二区三区| 国产真实乱子伦精品视频| 蜜臀av一区二区在线免费观看| 亚洲在线视频一区| 国产精品无遮挡| 欧美经典一区二区三区| 久久久.com| 久久亚洲私人国产精品va媚药| 777午夜精品免费视频| 欧美日韩精品是欧美日韩精品| 日本道免费精品一区二区三区| 成人亚洲一区二区一| 国产一区二区免费看| 国产一区二区三区香蕉| 麻豆91在线播放免费| 日本一道高清亚洲日美韩| 日韩高清在线一区| 午夜在线成人av| 日韩国产欧美在线播放| 日韩精彩视频在线观看|