موضوع: vb6 and 3drm7 is the top

ردود: 2 | زيارات: 773
  1. #1
    عضو
    صور رمزية farhat
    تاريخ التسجيل
    Jul 2006
    المنطقة
    الجنوب الجزائري
    العمر
    28
    ردود
    74

    vb6 and 3drm7 is the top

    اهلا من ارض الجزائر

    انا احسد مبرمجي الـ 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


  2. #2
    عضو نشيط
    صور رمزية X_Mind
    تاريخ التسجيل
    Sep 2005
    المنطقة
    العراق
    ردود
    325

    Lightbulb

    اخي العزيز بالنسبة لما تبغي له فاني والله لا انقدك ان قلت لك الطريق مغلق بوجهك لان هذه حقيقة

    فانا تعلمت برمجة الالعاب بالفجوال بيسك وقضيت اربع سنين من عمري مع هذه البيئة الجميلة التي توفر لك الامكانيات الهائلة ( عندما كنت مبتدئا ) وبالمناسبة فانا من المخضرمين كما يقولون اي من زمن وائل رضا ولعبته الستراتيجية والاخ محمد سعد الدين السويسي EGY_Tiger وموقع الفريق GameDesigners ولكن وبعد تعلمي لغات اخرى عرفت مدى بساطة البيسك وعدم قدرته على مسايرة الامور وهزالة الكلاسس الموجود فيه

    كما ان تحولي قبل ذلك بمدة للبرمجة DX8 باستخدام الفجوال بيسك جعلني ادرك الفرق الشاسع ايضا بين الاصدار السابع والثامن

    ففي السؤال الذي طرحته

    الرجاء الاجابة فهي مشكلة بحق

    --------------------------------------------------------------------------------

    سؤال ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

    في استعمال ديركت اكس 7
    كيف يمكن لك الربط بين المجسمات التي تحوالها الى اللاحقة اكس لاسترادها
    في الحجم و الابعاد التحقق التصادم مثلا او التفاعل معها

    افرض انك لديك مجسم يمثل طريق لسيارة و مجسم السيارة
    فكيف يمكنك دراسة طريق السيارة على هذا الطريق
    فانك ستجد هناك حلين ولكن باستخدام الدايركت اكس 8 الاول باستخدام الBoundingSphere والما الثاني فباستخدام الدالة D3DX8.Intersect والتي تقوم باعطائك نقطة تقاطع متجه مع ال mesh وعدد المثلثات التي تتقاطع مع المتجه واقرب مثلث منها

    اما بالنسبة للدايركت اكس 7 فيجب ان تعمل ذلك بنفسك من خلال كلاس المجسم حيث عند تكوين اي مجسم فانك يجب ان تحسب نصف قطر ال BoundingSphere له وذلك لتستفاد منه في المقارنات التالية

    وهذا مختصر للموضوع ولكن برمجته تتطلب فهما اكثر للمشكلة والتقنية التي ستستخدمها
    العزة لله ولرسوله وللمؤمنين

    بسم الله الرحمن الرحيم

    (( يا ايها الذين امنوا ان تنصروا الله ينصركم ويثبت اقدامكم {7} والذين كفروا فتعسا لهم واضل اعمالهم {8} ذلك بانهم كرهوا ما انزل الله فاحبط اعمالهم {9} افلم يسيروا في الارض فينظروا كيف كان عاقبة الذين من قبلهم دمر الله عليهم وللكافرين امثالها {10} ذلك بان الله مولى الذين امنوا وان الكافرين لا مولى لهم {11}))

    سورة محمد ( صلى الله عليه وسلم )


    Simply I'm not designer,I'm just programmer


    X-Team::X-Mind


    اخوكم محمد العاني

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل