游戏开发论坛

 找回密码
 立即注册
搜索
楼主: jacay

一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的太厉

[复制链接]

6

主题

23

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2006-7-29 18:59:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

GETDC 这样不是闪的厉害了?
我试了下。闪死了而且FPS更低啊

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-7-29 19:11:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

hdc = BS.GetDc
        gr = Graphics.FromHdc(hdc)
        drawFont = New Font("宋体", 10)
        drawbrush2 = New SolidBrush(Color.Black)
        If count = 0 Then Exit Sub
        For I = 1 To StrP.GetLength(0)
            If StrP(I - 1).Gueltig = True Then
                'BS.SetForeColor(StrP(I - 1).Color)
                'BS.SetFontTransparency(True)
                'BS.DrawText(StrP(I - 1).X, StrP(I - 1).Y, StrP(I - 1).str, False)
                drawBrush = New SolidBrush(StrP(I - 1).Color)

                gr.DrawString(StrP(I - 1).str, drawFont, drawbrush2, StrP(I - 1).X + 1, StrP(I - 1).Y + 1)
                gr.DrawString(StrP(I - 1).str, drawFont, drawBrush, StrP(I - 1).X, StrP(I - 1).Y)

            End If
        Next
        gr.Dispose()
        BS.ReleaseDc(hdc)


我的代码,一点不闪,图形引擎运行一般fps 在600-1000FPS左右~

还有,楼上的楼上那位,不管你是哪个的马甲,我最恨那种假装别人名字挑拨离间的马甲,不敢以真面目现身请选个没人用的名字

0

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2006-7-29 19:13:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

还是垃圾,用C++啦

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-7-29 19:19:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

代码再垃圾也比人垃圾好,做人能做得你那么垃圾还真是少见。
不敢以真面目现身就假冒别人,真实悲哀~

0

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2006-7-29 19:20:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

我是Azureyes, 有本事到我站学习,你会GL吗?

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-7-29 19:22:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

另外一个新点的版本~
用的MDX(DX9c apr 2004)
Public Class RenderObjText
        Inherits RenderObj2D

        ' Methods
        Public Sub New()
            Me.m_DrawFont = New System.Drawing.Font("宋体", 16.0!)
            Me.m_DrawPos = New Point(0, 0)
            Me.m_DrawColor = New ColorValue(1.0!, 1.0!, 1.0!, 1.0!)
            Me.m_strText = ""
        End Sub
        Public Overrides Function OnDestory() As Boolean
            Me.m_Font.Dispose()
            Return True
        End Function
        Public Overrides Function OnInit(ByRef _v As LLDevice, ByVal shader As Effect) As Boolean
            MyBase.OnInit(_v, shader)
            Me.m_Font = New Microsoft.DirectX.Direct3D.Font(MyBase.m_device.m_device, Me.m_DrawFont)
            Return True
        End Function
        Public Sub InitMe(ByVal Group As GEngine.RenderGroup2D, ByVal Engine As GEngine.Engine, ByVal str As String, ByVal name As String, ByVal font As String, ByVal size As Int16, _
    ByVal x As Single, ByVal y As Single, ByVal r As Byte, ByVal g As Byte, ByVal b As Byte, ByVal a As Byte)
            Me.m_strText = str
            Me.m_objname = name
            Me.m_DrawFont = New Drawing.Font(font, size)
            Me.m_DrawPos.X = x
            Me.m_DrawPos.Y = y
            Me.m_DrawColor = New Microsoft.DirectX.Direct3D.ColorValue(r, g, b, a)
            Me.m_Font = New Microsoft.directx.Direct3D.Font(Engine.m_device.m_device, Me.m_DrawFont)
            Group.AddObj(Me, True)

        End Sub
        Protected Overrides Sub OnReadAtt(ByVal strName As String, ByVal strValue As String)
            Dim temp() As String
            If (strName.ToLower.CompareTo("text") = 0) Then
                Me.m_strText = strValue
            End If
            If (strName.ToLower.CompareTo("name") = 0) Then
                Me.m_objname = strValue
            End If
            If (strName.ToLower.CompareTo("pos") = 0) Then
                temp = strValue.Split(",")
                Me.m_DrawPos.X = temp(0)
                Me.m_DrawPos.Y = temp(1)
            End If
            If (strName.ToLower.CompareTo("render") = 0) Then
                If strValue = "1" Then Me.m_Render = True Else Me.m_Render = False
            End If
            If (strName.ToLower.CompareTo("font") = 0) Then
                Dim text1 As String = strValue
                Me.m_DrawFont = New System.Drawing.Font(text1, Me.m_DrawFont.Size)
                Me.m_Font = New Direct3D.Font(MyBase.m_device.m_device, Me.m_DrawFont)
            End If
            If (strName.ToLower.CompareTo("size") = 0) Then
                Dim single1 As Single = System.Xml.XmlConvert.ToSingle(strValue)
                Me.m_DrawFont = New Drawing.Font(Me.m_DrawFont.Name, single1)
                Me.m_Font = New Direct3D.Font(MyBase.m_device.m_device, Me.m_DrawFont)
            End If
            If (strName.ToLower.CompareTo("color") = 0) Then
                temp = strValue.Split(",")
                Me.m_DrawColor.Red = temp(0)
                Me.m_DrawColor.Green = temp(1)
                Me.m_DrawColor.Blue = temp(2)
                Me.m_DrawColor.Alpha = temp(3)
            End If

        End Sub
        Public Overrides Function OnRender() As Boolean
            If Me.m_Render = False Then Return True
            Me.m_Font.DrawText(MyBase.m_device.m_sprite, Me.m_strText, New Point(Me.m_DrawPos.X + 1, Me.m_DrawPos.Y + 1), Drawing.Color.Black)
            Me.m_Font.DrawText(MyBase.m_device.m_sprite, Me.m_strText, Me.m_DrawPos, Me.m_DrawColor.ToArgb)
            Return True
        End Function

        ' Fields
        Public m_DrawColor As ColorValue
        Public m_DrawFont As System.Drawing.Font
        Public m_DrawPos As Point
        Public m_Font As Direct3D.Font
        Public m_strText As String
        Public m_Render As Boolean
    End Class

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-7-29 19:23:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

真是无聊,你干脆说你是sea_bug,或者干脆说是liiir1985吧

0

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2006-7-29 19:25:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

liiir1985大师万岁。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2006-7-30 12:09:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

xpertsofts,你会被封的。

3

主题

508

帖子

508

积分

高级会员

Rank: 4

积分
508
发表于 2006-7-30 12:13:00 | 显示全部楼层

Re:一般游戏中文字是怎样显示的,感觉DFONT。DRAW FPS降的

那个人是AZUREYES,毕竟他是搞技术的,但搞技术和搞游戏开发是两回事,
我承认AZUREYES对OPENGL的研究有一点心得,对于他图像学和游戏学只能选择一个,
AZUREYES适合开发引擎而不是游戏程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 01:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表