亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi實現碰撞球體完整實例代碼

2020-01-31 20:51:20
字體:
來源:轉載
供稿:網友

本文以實例描述了用Delphi實現撞擊球效果的方法,類似彈球效果。點擊“開始”按鈕,窗體中的一個綠色小球將不斷地左右撞擊運動,并且其大小不停地變化。點擊“停止”按鈕,小球停止運動。用鼠標拖動右下方的調節控件,可以調整小球運動的速度。

這里我們主要是使用Timer 控件、Panel 控件、TrackBar 控件、SpinEdit 控件、Shape控件和Button 控件來實現。重點是Delphi 的Timer 控件。在運行程序時,該控件不可見,也不能直接對它進行操作。Timer 控件每隔一定時間就會自動觸發OnTimer()事件。本例就是利用它來觸發小球運動事件的。

設計思路:該程序要解決的主要問題是如何控制小球運動以及運動過程中,小球的速度和大小。利用Timer 控件的OnTimer()事件來控制小球的運動;利用TrackBar 控件和SpinEdit控件來調節小球運動的速度。小球是由Shape 控件生成的。

一.新建工程:

(1)啟動Delphi 6.0 程序。選擇“文件”菜單下的“新建”命令,從彈出的子菜單中選擇Application 選項,則出現新建工程的Form1 窗口。
(2)選擇“文件”菜單下的“工程另存為”命令,彈出Save Unit1 As 對話框。在“保存在”列表框中選擇需要存放該窗口文件所在的目錄名;在“文件名”編輯框中填寫文件名,這里填寫“Unit1”,點擊“保存”按鈕,保存上面的選項。
(3)執行上一步后,將彈出“工程另存為”對話框。在“保存在”列表框中選擇需要存放該工程的目錄名,最好和第(2)步選取相同的目錄;在“文件名”編輯框中填寫保存處理該工程的源代碼的文件名,這里填寫“Project1”,點擊“保存”按鈕,保存上面的選項。

二.部分參數設置:

(1)激活Unit1 窗口,在“屬性”面板中設置該窗體的Caption 屬性為“運動的球體”,Color 屬性設置為“clMoneyGreen”。
(2)選擇“標準”頁上的Panel 選項,在窗體中添加Panel 控件,調整其合適的大小和位置,在“屬性”面板中設置該控件的Name 屬性為“Panel1”,BevelInner 為“bvLowered”,BevelOuter 為“blNone”,BorderStyle 設置為“bsSingle”,Color 屬性設置為“clSkyBlue”。
(3)選擇“系統”頁上的Timer 選項,在窗體中添加一個Timer 控件,在Object Inspecter面板中設置其Interval 屬性為1,Name 屬性為“Timer1”。
(4)選擇“附加”頁上的Shape 選項,在窗體中Panel1 上添加一個Shape 控件,在“屬性”面板中設置其Show Hint 屬性為“True”,Hint 屬性為“運動球體”,設置其Brush.Color 屬性為ClLime,設置其Shape 屬性為“slCircle”。
(5)選擇“標準”頁上的Button 選項,在窗體中添加三個Button 控件,調整其合適的大小和位置。在“屬性”面板中設置其Caption 屬性分別為“開始”、“停止”和“退出”。
(6)選擇Win 32 頁上的TrackBar 選項,在窗體中添加TrackBar 控件,調整其合適的大小和位置。在“屬性”面板上設置其合適的屬性。
(7)選擇Samples 上的SpinEdit 選項,在窗體中添加SpinEdit 控件,調整其合適的大小和位置。在“屬性”面板上設置其合適的屬性。

三.代碼分析:

(1)為了實現小球來回移動的功能,需要設置一個全局變量,即整數I,I 的初始值為1。當I=1 時,小球向左移動,撞到面板的左壁時,I 值變為2,此時小球向右運動,撞到面板右壁時,I 值又變為1。這樣通過I 值的變化,就實現了小球的來回運動。這部分代碼在OnTimer 事件中:

procedure TForm1.Timer1Timer(Sender: TObject);beginTimer1.interval:=trackbar1.position; //設置Timer 控件的觸發時間間隔if i=1 then //小球向左運動beginif shape1.left>0 thenbeginshape1.left:=shape1.left-10; //使小球的位置發生變化shape1.Width:=(shape1.Width+1)mod 70; //使小球所在矩形寬度發生變化shape1.Height:=(shape1.Height+1)mod 70; //使小球所在矩形高度發生變化endelsei:=2; //小球向右運動end;if i=2 thenbeginif shape1.left<(panel1.Width-shape1.Width-5) thenbeginshape1.left:=shape1.left+10 ; //使小球的位置發生變化shape1.Width:=(shape1.Width+1)mod 70;//使小球所在矩形寬度發生變化shape1.Height:=(shape1.Height+1)mod 70;//使小球所在矩形高度發生變化endelsei:=1;end;end;

(2)“開始”和“停止”按鈕控制小球是否運動,其實就是控制Timer 是否工作:

procedure TForm1.Button1Click(Sender: TObject);beginTimer1.interval:=trackbar1.position; //設置Timer 控件的觸發時間間隔Timer1.Enabled:=true; //小球開始運動end;procedure TForm1.Button2Click(Sender: TObject);beginTimer1.Enabled:=False; //小球停止運動end;

(3)TrackBar 和SpinEdit 兩個控件控制小球運動的速度,相應代碼如下:

procedure TForm1.SpinEdit1Change(Sender: TObject);begintrackbar1.position:=spinEdit1.Value; //改變運動速度end;procedure TForm1.TrackBar1Change(Sender: TObject);beginspinEdit1.value:=trackbar1.Position; //將Trackbar 值的變化通知SpinEdit 控件end;

四.Delphi彈球的完整代碼如下:

unit Unit1;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ExtCtrls, ComCtrls, StdCtrls, Spin;typeTForm1 = class(TForm)Panel1: TPanel;Button1: TButton;Button2: TButton;TrackBar1: TTrackBar;Timer1: TTimer;Shape1: TShape;SpinEdit1: TSpinEdit;Button3: TButton;procedure Timer1Timer(Sender: TObject);procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure SpinEdit1Change(Sender: TObject);procedure TrackBar1Change(Sender: TObject);procedure Button3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;i:integer;implementation{$R *.DFM}procedure TForm1.Timer1Timer(Sender: TObject);beginTimer1.interval:=trackbar1.position; //設置Timer 控件的觸發時間間隔if i=1 then //小球向左運動beginif shape1.left>0 thenbeginshape1.left:=shape1.left-10; //使小球的位置發生變化shape1.Width:=(shape1.Width+1)mod 70;//使小球所在矩形寬度發生變化shape1.Height:=(shape1.Height+1)mod 70;//使小球所在矩形高度發生變化endelsei:=2; //小球向右運動end;if i=2 thenbeginif shape1.left<(panel1.Width-shape1.Width-5) thenbeginshape1.left:=shape1.left+10 ; //使小球的位置發生變化shape1.Width:=(shape1.Width+1)mod 70; //使小球所在矩形寬度發生變化shape1.Height:=(shape1.Height+1)mod 70;//使小球所在矩形高度發生變化endelsei:=1;end;end;procedure TForm1.Button1Click(Sender: TObject);beginTimer1.interval:=trackbar1.position; //設置Timer 控件的觸發時間間隔Timer1.Enabled:=true; //小球開始運動end;procedure TForm1.Button2Click(Sender: TObject);beginTimer1.Enabled:=False; //小球停止運動end;procedure TForm1.SpinEdit1Change(Sender: TObject);begintrackbar1.position:=spinEdit1.Value; //改變運動速度end;procedure TForm1.TrackBar1Change(Sender: TObject);beginspinEdit1.value:=trackbar1.Position; //將Trackbar 值的變化通知SpinEdit 控件end;procedure TForm1.Button3Click(Sender: TObject);beginclose; //退出end;initializationi:=1;end.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲最大福利网| 国产精品露脸av在线| 欧美黑人极品猛少妇色xxxxx| 国产午夜精品全部视频在线播放| 精品亚洲永久免费精品| 国产精品com| 亚洲免费电影一区| 欧美极品在线视频| 国产精品免费观看在线| 欧美精品xxx| 国产福利精品视频| 久久偷看各类女兵18女厕嘘嘘| 久久久久久有精品国产| 日韩av在线一区| 91精品国产91久久久久| 久久在线免费视频| 国产一区二区精品丝袜| 亚洲成人黄色网址| 91久久国产精品| 国产亚洲欧美另类中文| 国产伦精品一区二区三区精品视频| 欧美一级淫片播放口| 91精品国产综合久久男男| 日韩av中文字幕在线| 这里只有精品丝袜| 色先锋资源久久综合5566| 欧美床上激情在线观看| 国外成人在线播放| 久久久久久久久久久国产| 日韩av在线导航| 国产在线视频欧美| 欧美国产日韩xxxxx| 777国产偷窥盗摄精品视频| 国产精品影片在线观看| 欧美大全免费观看电视剧大泉洋| 狠狠躁夜夜躁人人爽天天天天97| 亚洲毛片一区二区| 欧美成人性色生活仑片| 国产视频精品一区二区三区| 欧美成人合集magnet| 国产一区二区在线免费| 岛国视频午夜一区免费在线观看| 中文在线资源观看视频网站免费不卡| 秋霞午夜一区二区| 国语自产精品视频在免费| 欧洲亚洲妇女av| 91成人在线观看国产| 亚洲欧美国产制服动漫| 欧美精品精品精品精品免费| 在线日韩欧美视频| 一区二区三区动漫| 97在线视频精品| 欧美性极品少妇精品网站| 亚洲欧美一区二区精品久久久| 97视频在线观看成人| 亚洲国产美女精品久久久久∴| 国语自产偷拍精品视频偷| 亚洲有声小说3d| 激情成人在线视频| 色综合久久88色综合天天看泰| 欧美大学生性色视频| 亚洲美女免费精品视频在线观看| 国产成人一区二区三区电影| 韩国精品美女www爽爽爽视频| 欧美色播在线播放| 亚洲福利在线看| 欧美成人午夜激情视频| 在线播放日韩专区| 亚洲一区二区三区777| 精品自在线视频| 日韩中文字幕免费视频| 久久久人成影片一区二区三区观看| 欧美xxxx18性欧美| 欧美日韩中文在线| 中文字幕免费精品一区| 97av视频在线| 乱亲女秽乱长久久久| 中国china体内裑精亚洲片| 亚洲精品99久久久久| 7m第一福利500精品视频| 性欧美亚洲xxxx乳在线观看| 久久精品国产欧美激情| 欧美大片网站在线观看| 国产精品第1页| 久久精品国产电影| 日韩av网站电影| 欧美电影免费播放| 日韩暖暖在线视频| 国产亚洲福利一区| 亚洲国产精品嫩草影院久久| 国产精品久久97| 九九热最新视频//这里只有精品| 国产精品偷伦视频免费观看国产| 午夜欧美不卡精品aaaaa| 国产伦精品一区二区三区精品视频| 日韩欧美精品在线观看| 欧美劲爆第一页| 亚洲最大av网站| 九九精品在线视频| 亚洲aa在线观看| 日韩一区视频在线| 久久99亚洲精品| 色噜噜久久综合伊人一本| 国产91色在线|| 日韩精品在线观看一区| 亚洲香蕉在线观看| 亚洲精品日韩在线| 欧美最顶级丰满的aⅴ艳星| 91国产精品电影| 欧美大片va欧美在线播放| 国产精品久久久久久久久男| 久久久久国色av免费观看性色| 国产suv精品一区二区| 91久久嫩草影院一区二区| 亚洲欧美激情一区| 日本精品性网站在线观看| 亚洲国产三级网| 这里精品视频免费| 久久免费国产精品1| 国产午夜精品全部视频播放| 国产精品视频在线观看| 欧美激情久久久| 668精品在线视频| 久久青草精品视频免费观看| 久久久久久国产精品久久| 欧美激情视频免费观看| 国产精品91在线观看| 亚洲第一区在线观看| 亚洲第一页在线| 日韩欧美国产一区二区| 久久久国产精品免费| 亚洲视频在线免费观看| 欧美日韩国产综合新一区| www.久久久久久.com| 57pao国产精品一区| 日韩在线视频播放| 91亚洲一区精品| 国产日韩精品入口| 91av视频在线观看| 欧美日韩亚洲一区二区| 欧美中文字幕在线观看| 久久精品国产精品亚洲| 亚洲国产精品大全| 欧美中文字幕第一页| 国产精品手机播放| 欧美成人激情视频| 欧美黑人又粗大| 国产精品自产拍在线观看| 久热精品视频在线观看一区| 国产精品日韩在线一区| 国产精品成人免费视频| 成人激情视频网| 日韩精品一区二区三区第95| 亚洲性生活视频在线观看| 正在播放欧美一区| 欧美成人免费小视频| 国产91色在线|| 欧美国产日韩二区| 日韩高清中文字幕| 国产日韩欧美一二三区| 日韩欧美中文字幕在线播放| 成人免费视频在线观看超级碰| 欧美激情一区二区三区高清视频| 久久精品中文字幕|