اهلا من ارض الجزائر
انا احسد مبرمجي الـ c++ المتمكنون في شيء منها خاصة برمجة الالعاب
قلما تعمل على السي ++ فانك تحس بانه يوحد من يحس بعملك و يقدره
و كلما انت في حاجة له من الاكواد بوفرة - حيث تذكرت ماقولة
"ان لم تعرف ما تبرمج فتعلم السي ++"
لاااااااااااااااااااااااااااكن
لما فتحت عينيا في البرمجة ايام زمان كان هذا على في بي 6
و الا ان هذه اللغة لا يمكن لها محاكات العاب ذات جودة عالية جدا جدا
و التي تكون قد كتبت في السي ++
ان هذا انا شخصيا لا يمنعني من هجرها حتى انني اتجهت لبرمجة الالعاب فقط
لا ننسا انها اسرع و افضل بيئة تطوير البريمجات خاصة قواعد البيانات
انا الاحظ انه عند استعمال ديركت اكس بكفائة مع في بي 6 لا نلاحظ الا بطئ
قليل لاكن للالعاب ذات الجرافيك العالي جدا جدا - الله اعلم مني و منكم ؟؟؟
انا ارحب ب الاسئلة و المساندات و الاقتراحات و الاتحاد
و لن ارد على الانتقادات
على --------- f-89@maktoob.com
انا شاكر الى :
وائل فؤاد رضا
و العضو egy_tiger
عبد الناصر الكعبي
الاخ الاجنبي " جاك هوكسلي "
على كل ما قدموه من مبادرت شخصية
اليكم شيء بسيط من عملي لي كلاس تعمل على الار ام ثري دي 7
+++++++++++++++++++++++++++++++++++++++++++++
Option Explicit
Dim Dx As New DirectX7
Dim Dd As DirectDraw4
Dim Primary As DirectDrawSurface4
Public Back_Buffer As DirectDrawSurface4
Dim Ddsd As DDSURFACEDESC2
Dim D3d As Direct3DRM3
Dim Device As Direct3DRMDevice3
Dim ViewPort As Direct3DRMViewport2
Dim Light As Direct3DRMLight
Dim Shadow As Direct3DRMLight
Public WorldFrame As Direct3DRMFrame3
Public CameraFrame As Direct3DRMFrame3
Dim LightFrame As Direct3DRMFrame3
Const PI As Single = 22 / 7: Const RAD As Single = PI / 180
Dim MeshBuilder As Direct3DRMMeshBuilder3
Dim Font As New StdFont
Dim Ddsd1 As DDSURFACEDESC2
Dim Key As DDCOLORKEY
Dim Ds As DirectSound
Dim Wa As WAVEFORMATEX
Dim Dsbd As DSBUFFERDESC
Dim DmLoad As DirectMusicLoader
Dim DmPer As DirectMusicPerformance
Dim Di As DirectInput
Dim Didev As DirectInputDevice
Dim DiKey As DIKEYBOARDSTATE
Sub CreateD3DRM(Hwnd As Long, Width As Integer, Height As Integer, Bpp As Integer)
Set Dd = Dx.DirectDraw4Create("")
Dd.SetCooperativeLevel Hwnd, DDSCL_ALLOWREBOOT Or DDSCL_EXCLUSIVE Or DDSCL_FULLSCREEN
Dd.SetDisplayMode Width, Height, Bpp, 0, DDSDM_DEFAULT
Ddsd.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
Ddsd.ddsCaps.lCaps = DDSCAPS_3DDEVICE Or DDSCAPS_FLIP _
Or DDSCAPS_COMPLEX Or DDSCAPS_PRIMARYSURFACE
Ddsd.lBackBufferCount = 1
Set Primary = Dd.CreateSurface(Ddsd)
Ddsd.ddsCaps.lCaps = DDSCAPS_BACKBUFFER Or DDSCAPS_3DDEVICE
Set Back_Buffer = Primary.GetAttachedSurface(Ddsd.ddsCaps)
Set D3d = Dx.Direct3DRMCreate
Set Device = D3d.CreateDeviceFromSurface("IID_IDirect3DHALDevice", Dd, Back_Buffer, D3DRMDEVICE_DEFAULT)
Device.SetBufferCount 2
Device.SetQuality D3DRMLIGHT_ON Or D3DRMRENDER_GOURAUD
Device.SetTextureQuality D3DRMTEXTURE_NEAREST
Device.SetRenderMode D3DRMRENDERMODE_BLENDEDTRANSPARENCY
Set WorldFrame = D3d.CreateFrame(Nothing)
Set CameraFrame = D3d.CreateFrame(WorldFrame)
Set LightFrame = D3d.CreateFrame(WorldFrame)
WorldFrame.SetSceneBackgroundRGB 0, 0, 0
Set Light = D3d.CreateLightRGB(D3DRMLIGHT_AMBIENT, 1, 1, 1)
Set Shadow = D3d.CreateLightRGB(D3DRMLIGHT_POINT, 2, 2, 2)
LightFrame.AddLight Light
LightFrame.AddLight Shadow
Set ViewPort = D3d.CreateViewport(Device, CameraFrame, 0, 0, Width, Height)
ViewPort.SetBack 1000
Ddsd1.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH
Ddsd1.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
Set Ds = Dx.DirectSoundCreate("")
Ds.SetCooperativeLevel Hwnd, DSSCL_PRIORITY
Dsbd.lFlags = DSBCAPS_CTRLVOLUME Or _
DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN
Set DmLoad = Dx.DirectMusicLoaderCreate
Set DmPer = Dx.DirectMusicPerformanceCreate
DmPer.Init Nothing, Hwnd
DmPer.SetPort -1, 1
Set Di = Dx.DirectInputCreate
Set Didev = Di.CreateDevice("guid_syskeyboard")
Didev.SetCooperativeLevel Hwnd, DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND
Didev.SetCommonDataFormat DIFORMAT_KEYBOARD
Didev.Acquire
End Sub
Sub Unload_App()
On Error Resume Next
'SetCursorShow True
Set Dx = Nothing
Set Dd = Nothing
Set Primary = Nothing
Set Back_Buffer = Nothing
Set D3d = Nothing
Set Device = Nothing
Set WorldFrame = Nothing
Set CameraFrame = Nothing
Set LightFrame = Nothing
Set ViewPort = Nothing
Set MeshBuilder = Nothing
End
End Sub
Sub Fliping()
Primary.Flip Nothing, DDFLIP_WAIT
ViewPort.Clear D3DRMCLEAR_TARGET Or D3DRMCLEAR_ZBUFFER
Device.Update
ViewPort.Render WorldFrame
DoEvents
End Sub
Sub LoadMesh(Mesh As Direct3DRMFrame3, Path As String)
Set Mesh = D3d.CreateFrame(WorldFrame)
Set MeshBuilder = D3d.CreateMeshBuilder
MeshBuilder.LoadFromFile App.Path & Path, 0, 0, Nothing, Nothing
Mesh.AddVisual MeshBuilder
End Sub
Sub SetFont(Name As String, Size As Integer, Bold As Boolean, Italic As Boolean)
With Font: .Name = Name: .Size = Size: .Bold = Bold: .Italic = Italic: End With
Back_Buffer.SetFont Font
End Sub
Sub LoadSprat(lHeight As Integer, lWidth As Integer, Path As String, Surf As DirectDrawSurface4)
Ddsd1.lHeight = lHeight: Ddsd1.lWidth = lWidth
Set Surf = Dd.CreateSurfaceFromFile(App.Path & Path, Ddsd1)
Surf.SetColorKey DDCKEY_SRCBLT, Key
End Sub
Sub PutSprat(Dx As Integer, dY As Integer, Surf As DirectDrawSurface4, RECT As RECT)
Back_Buffer.BltFast Dx, dY, Surf, RECT, DDBLTFAST_SRCCOLORKEY
End Sub
Sub SetRect(RECT As RECT, Left As Integer, Right As Integer, Top As Integer, Bottom As Integer)
With RECT: .Left = Left: .Right = Right: .Top = Top: .Bottom = Bottom: End With
End Sub
Sub LoadSound(sBuffer As DirectSoundBuffer, Path As String)
Set sBuffer = Ds.CreateSoundBufferFromFile(App.Path & Path, Dsbd, Wa)
End Sub
Sub LoadMusic(Seg As DirectMusicSegment, Path As String)
Set Seg = DmLoad.LoadSegment(App.Path & Path)
Seg.SetStandardMidiFile
DmPer.SetMasterAutoDownload True
Seg.Download DmPer
End Sub
Sub PlayMusic(Seg As DirectMusicSegment, Play As Boolean)
If Play = True Then
DmPer.PlaySegment Seg, 0, 0
Else
DmPer.Stop Seg, Nothing, 0, 0
End If
End Sub
Function GetKey() As Integer
Dim I
Didev.GetDeviceStateKeyboard DiKey
On Error Resume Next
For I = 0 To 255
DoEvents
If DiKey.Key(I) Then
GetKey = I
End If
Next
End Function
Sub SetCursorShow(Show As Boolean)
ShowCursor Show
End Sub
++++++++++++++++++++++++++++++++++++++++++++++
انا في حاجة ماسة الى /:
معلومات في ذكاء الالعاب و فيزيائها
اكواد لفجوال بيزك 6 و dx7 خاصة 3drm
احسن المواقع العربية النشطة في برمجة الالعاب بالفي بي 6 و ليس النات
بالمناسبة فالفي بي نات لا يمكنها العمل ب dx8
انا احسد مبرمجي الـ c++ المتمكنون في شيء منها خاصة برمجة الالعاب
قلما تعمل على السي ++ فانك تحس بانه يوحد من يحس بعملك و يقدره
و كلما انت في حاجة له من الاكواد بوفرة - حيث تذكرت ماقولة
"ان لم تعرف ما تبرمج فتعلم السي ++"
لاااااااااااااااااااااااااااكن
لما فتحت عينيا في البرمجة ايام زمان كان هذا على في بي 6
و الا ان هذه اللغة لا يمكن لها محاكات العاب ذات جودة عالية جدا جدا
و التي تكون قد كتبت في السي ++
ان هذا انا شخصيا لا يمنعني من هجرها حتى انني اتجهت لبرمجة الالعاب فقط
لا ننسا انها اسرع و افضل بيئة تطوير البريمجات خاصة قواعد البيانات
انا الاحظ انه عند استعمال ديركت اكس بكفائة مع في بي 6 لا نلاحظ الا بطئ
قليل لاكن للالعاب ذات الجرافيك العالي جدا جدا - الله اعلم مني و منكم ؟؟؟
انا ارحب ب الاسئلة و المساندات و الاقتراحات و الاتحاد
و لن ارد على الانتقادات
على --------- f-89@maktoob.com
انا شاكر الى :
وائل فؤاد رضا
و العضو egy_tiger
عبد الناصر الكعبي
الاخ الاجنبي " جاك هوكسلي "
على كل ما قدموه من مبادرت شخصية
اليكم شيء بسيط من عملي لي كلاس تعمل على الار ام ثري دي 7
+++++++++++++++++++++++++++++++++++++++++++++
Option Explicit
Dim Dx As New DirectX7
Dim Dd As DirectDraw4
Dim Primary As DirectDrawSurface4
Public Back_Buffer As DirectDrawSurface4
Dim Ddsd As DDSURFACEDESC2
Dim D3d As Direct3DRM3
Dim Device As Direct3DRMDevice3
Dim ViewPort As Direct3DRMViewport2
Dim Light As Direct3DRMLight
Dim Shadow As Direct3DRMLight
Public WorldFrame As Direct3DRMFrame3
Public CameraFrame As Direct3DRMFrame3
Dim LightFrame As Direct3DRMFrame3
Const PI As Single = 22 / 7: Const RAD As Single = PI / 180
Dim MeshBuilder As Direct3DRMMeshBuilder3
Dim Font As New StdFont
Dim Ddsd1 As DDSURFACEDESC2
Dim Key As DDCOLORKEY
Dim Ds As DirectSound
Dim Wa As WAVEFORMATEX
Dim Dsbd As DSBUFFERDESC
Dim DmLoad As DirectMusicLoader
Dim DmPer As DirectMusicPerformance
Dim Di As DirectInput
Dim Didev As DirectInputDevice
Dim DiKey As DIKEYBOARDSTATE
Sub CreateD3DRM(Hwnd As Long, Width As Integer, Height As Integer, Bpp As Integer)
Set Dd = Dx.DirectDraw4Create("")
Dd.SetCooperativeLevel Hwnd, DDSCL_ALLOWREBOOT Or DDSCL_EXCLUSIVE Or DDSCL_FULLSCREEN
Dd.SetDisplayMode Width, Height, Bpp, 0, DDSDM_DEFAULT
Ddsd.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
Ddsd.ddsCaps.lCaps = DDSCAPS_3DDEVICE Or DDSCAPS_FLIP _
Or DDSCAPS_COMPLEX Or DDSCAPS_PRIMARYSURFACE
Ddsd.lBackBufferCount = 1
Set Primary = Dd.CreateSurface(Ddsd)
Ddsd.ddsCaps.lCaps = DDSCAPS_BACKBUFFER Or DDSCAPS_3DDEVICE
Set Back_Buffer = Primary.GetAttachedSurface(Ddsd.ddsCaps)
Set D3d = Dx.Direct3DRMCreate
Set Device = D3d.CreateDeviceFromSurface("IID_IDirect3DHALDevice", Dd, Back_Buffer, D3DRMDEVICE_DEFAULT)
Device.SetBufferCount 2
Device.SetQuality D3DRMLIGHT_ON Or D3DRMRENDER_GOURAUD
Device.SetTextureQuality D3DRMTEXTURE_NEAREST
Device.SetRenderMode D3DRMRENDERMODE_BLENDEDTRANSPARENCY
Set WorldFrame = D3d.CreateFrame(Nothing)
Set CameraFrame = D3d.CreateFrame(WorldFrame)
Set LightFrame = D3d.CreateFrame(WorldFrame)
WorldFrame.SetSceneBackgroundRGB 0, 0, 0
Set Light = D3d.CreateLightRGB(D3DRMLIGHT_AMBIENT, 1, 1, 1)
Set Shadow = D3d.CreateLightRGB(D3DRMLIGHT_POINT, 2, 2, 2)
LightFrame.AddLight Light
LightFrame.AddLight Shadow
Set ViewPort = D3d.CreateViewport(Device, CameraFrame, 0, 0, Width, Height)
ViewPort.SetBack 1000
Ddsd1.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH
Ddsd1.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
Set Ds = Dx.DirectSoundCreate("")
Ds.SetCooperativeLevel Hwnd, DSSCL_PRIORITY
Dsbd.lFlags = DSBCAPS_CTRLVOLUME Or _
DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN
Set DmLoad = Dx.DirectMusicLoaderCreate
Set DmPer = Dx.DirectMusicPerformanceCreate
DmPer.Init Nothing, Hwnd
DmPer.SetPort -1, 1
Set Di = Dx.DirectInputCreate
Set Didev = Di.CreateDevice("guid_syskeyboard")
Didev.SetCooperativeLevel Hwnd, DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND
Didev.SetCommonDataFormat DIFORMAT_KEYBOARD
Didev.Acquire
End Sub
Sub Unload_App()
On Error Resume Next
'SetCursorShow True
Set Dx = Nothing
Set Dd = Nothing
Set Primary = Nothing
Set Back_Buffer = Nothing
Set D3d = Nothing
Set Device = Nothing
Set WorldFrame = Nothing
Set CameraFrame = Nothing
Set LightFrame = Nothing
Set ViewPort = Nothing
Set MeshBuilder = Nothing
End
End Sub
Sub Fliping()
Primary.Flip Nothing, DDFLIP_WAIT
ViewPort.Clear D3DRMCLEAR_TARGET Or D3DRMCLEAR_ZBUFFER
Device.Update
ViewPort.Render WorldFrame
DoEvents
End Sub
Sub LoadMesh(Mesh As Direct3DRMFrame3, Path As String)
Set Mesh = D3d.CreateFrame(WorldFrame)
Set MeshBuilder = D3d.CreateMeshBuilder
MeshBuilder.LoadFromFile App.Path & Path, 0, 0, Nothing, Nothing
Mesh.AddVisual MeshBuilder
End Sub
Sub SetFont(Name As String, Size As Integer, Bold As Boolean, Italic As Boolean)
With Font: .Name = Name: .Size = Size: .Bold = Bold: .Italic = Italic: End With
Back_Buffer.SetFont Font
End Sub
Sub LoadSprat(lHeight As Integer, lWidth As Integer, Path As String, Surf As DirectDrawSurface4)
Ddsd1.lHeight = lHeight: Ddsd1.lWidth = lWidth
Set Surf = Dd.CreateSurfaceFromFile(App.Path & Path, Ddsd1)
Surf.SetColorKey DDCKEY_SRCBLT, Key
End Sub
Sub PutSprat(Dx As Integer, dY As Integer, Surf As DirectDrawSurface4, RECT As RECT)
Back_Buffer.BltFast Dx, dY, Surf, RECT, DDBLTFAST_SRCCOLORKEY
End Sub
Sub SetRect(RECT As RECT, Left As Integer, Right As Integer, Top As Integer, Bottom As Integer)
With RECT: .Left = Left: .Right = Right: .Top = Top: .Bottom = Bottom: End With
End Sub
Sub LoadSound(sBuffer As DirectSoundBuffer, Path As String)
Set sBuffer = Ds.CreateSoundBufferFromFile(App.Path & Path, Dsbd, Wa)
End Sub
Sub LoadMusic(Seg As DirectMusicSegment, Path As String)
Set Seg = DmLoad.LoadSegment(App.Path & Path)
Seg.SetStandardMidiFile
DmPer.SetMasterAutoDownload True
Seg.Download DmPer
End Sub
Sub PlayMusic(Seg As DirectMusicSegment, Play As Boolean)
If Play = True Then
DmPer.PlaySegment Seg, 0, 0
Else
DmPer.Stop Seg, Nothing, 0, 0
End If
End Sub
Function GetKey() As Integer
Dim I
Didev.GetDeviceStateKeyboard DiKey
On Error Resume Next
For I = 0 To 255
DoEvents
If DiKey.Key(I) Then
GetKey = I
End If
Next
End Function
Sub SetCursorShow(Show As Boolean)
ShowCursor Show
End Sub
++++++++++++++++++++++++++++++++++++++++++++++
انا في حاجة ماسة الى /:
معلومات في ذكاء الالعاب و فيزيائها
اكواد لفجوال بيزك 6 و dx7 خاصة 3drm
احسن المواقع العربية النشطة في برمجة الالعاب بالفي بي 6 و ليس النات
بالمناسبة فالفي بي نات لا يمكنها العمل ب dx8
تعليق