Suporte ao desenvolvimento de jogos!


    Sistema de Climas

    Compartilhe
    avatar
    thales12
    Membro Ativo
    Membro Ativo

    Mensagens : 314
    Créditos : 108

    Sistema de Climas

    Mensagem por thales12 em Qui Out 27, 2011 7:29 pm

    Abra o Client~Side va na frmEditor_MapProperties e crie 1 ComboBox com:

    Name:cmbWeather

    e na list dela ponha:

    None
    Rain
    Snow
    Bird
    Sand

    ao lado da combobox crie 1 label chamada:

    Caption: Temperatura

    dps procure por:

    Código:
    .BootY = Val(txtBootY.text)

    em baixo adicione:

    Código:
    .Weather = cmbWeather.ListIndex

    dps procure no savemap por:

    Código:
    Put #f, , MAP.Music

    e em baixo adicione:

    Código:
    Put #f, , MAP.Weather

    dps procure no loadmap por:

    Código:
    Get #f, , MAP.Music

    em baixo adicione:

    Código:
    Get #f, , MAP.Weather

    dps na modConstants no final dela adicione:

    Código:
    ' weather
    Public Const WEATHER_RAINING As Long = 1
    Public Const WEATHER_SNOWING As Long = 2
    Public Const WEATHER_BIRD As Long = 3
    Public Const WEATHER_SAND As Long = 4
    Public Const MAX_RAINDROPS As Long = 200
    Public Const MAX_SNOWDROPS As Long = 1000
    Public Const MAX_BIRDDROPS As Long = 3
    Public Const MAX_SANDDROPS As Long = 6

    dps procure por:

    Código:
    ' automation problems
    Public ReInitSurfaces As Boolean

    em baixo adicione:

    Código:
    ' weather
    Public DropSnow(1 To MAX_SNOWDROPS) As DropRec
    Public DropRain(1 To MAX_RAINDROPS) As DropRec
    Public DropBird(1 To MAX_BIRDDROPS) As DropRec
    Public DropSand(1 To MAX_SANDDROPS) As DropRec

    dps procure por:

    Código:
    Public DDS_Bars As DirectDrawSurface7

    em baixo adicione:

    Código:
    Public DDS_Snow As DirectDrawSurface7
    Public DDS_Bird As DirectDrawSurface7
    Public DDS_Sand As DirectDrawSurface7

    se ja tiver isso la ignore...

    dps procure por:

    Código:
    Public DDSD_Bars As DDSURFACEDESC2

    em baixo adicione:

    Código:
    Public DDSD_Snow As DDSURFACEDESC2
    Public DDSD_Bird As DDSURFACEDESC2
    Public DDSD_Sand As DDSURFACEDESC2

    dps procure por:

    Código:
    If FileExist(App.Path & "\data files\graphics\bars.bmp", True) Then Call InitDDSurf("bars", DDSD_Bars, DDS_Bars)

    em baixo adicione:

    Código:
        If FileExist(App.Path & "\data files\graphics\snow.bmp", True) Then Call InitDDSurf("snow", DDSD_Snow, DDS_Snow)
        If FileExist(App.Path & "\data files\graphics\bird.bmp", True) Then Call InitDDSurf("bird", DDSD_Bird, DDS_Bird)
        If FileExist(App.Path & "\data files\graphics\sand.bmp", True) Then Call InitDDSurf("sand", DDSD_Sand, DDS_Sand)

    dps procure por:

    Código:
     DDS_Target = Nothing
        ZeroMemory ByVal VarPtr(DDSD_Target), LenB(DDSD_Target)

    em baixo adicione:

    Código:
     Set DDS_Snow = Nothing 'neve
        ZeroMemory ByVal VarPtr(DDSD_Snow), LenB(DDSD_Snow)
       
        Set DDS_Bird = Nothing
        ZeroMemory ByVal VarPtr(DDSD_Bird), LenB(DDSD_Bird)
       
        Set DDS_Sand = Nothing
        ZeroMemory ByVal VarPtr(DDSD_Sand), LenB(DDSD_Sand)

    no final da modDirectDraw7 adicione:

    Código:
    Sub BltWeather()
        Dim i As Long, sRECT As RECT

        ' rain
        If Map.Weather = WEATHER_RAINING Then
            Call DDS_BackBuffer.SetForeColor(RGB(12, 40, 96))
            For i = 1 To MAX_RAINDROPS
                With DropRain(i)
                    If .Init = True Then
                        ' move o rain
                        .y = .y + .ySpeed
                        ' checar a screen
                        If .y > 480 + 64 Then
                            .y = Rand(0, 100)
                            .y = .y - 100
                            .x = Rand(0, 640 + 64)
                            .ySpeed = Rand(5, 10)
                            .Init = True
                        End If
                        ' draw rain
                        DDS_BackBuffer.DrawLine .x + Camera.Left, .y + Camera.top, .x + Camera.Left, .y + (.ySpeed * 2) + Camera.top
                    Else
                        .y = Rand(0, 100)
                        .y = .y - 100
                        .x = Rand(0, 640 + 64)
                        .ySpeed = Rand(5, 10)
                        .Init = True
                    End If
                End With
            Next
        End If
       
        ' snow
        If Map.Weather = WEATHER_SNOWING Then
            Call DDS_BackBuffer.SetForeColor(RGB(255, 255, 255))
            For i = 1 To MAX_SNOWDROPS
                With DropSnow(i)
                    If .Init = True Then
                        ' move o snow
                        .y = .y + .ySpeed
                        .x = .x + .xSpeed
                        ' checar screen
                        If .y > 480 + 64 Then
                            .y = Rand(0, 100) - 100
                            .x = Rand(0, 640 + 64)
                            .ySpeed = Rand(1, 4)
                            .xSpeed = Rand(0, 4) - 2
                        End If
                        ' draw rain
                        With sRECT
                            .top = 0
                            .Bottom = 32
                            .Left = 0
                            .Right = 32
                        End With
                        Engine_BltFast .x + Camera.Left, .y + Camera.top, DDS_Snow, sRECT, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
                    Else
                        .y = Rand(0, 480)
                        .x = Rand(0, 640 + 64)
                        .ySpeed = Rand(1, 4)
                        .xSpeed = Rand(0, 4) - 2
                        .Init = True
                    End If
                End With
            Next
        End If
       
        If Map.Weather = WEATHER_BIRD Then
            'Call DDS_BackBuffer.SetForeColor(RGB(255, 255, 255))
            For i = 1 To MAX_BIRDDROPS
                With DropBird(i)
                    If .Init = True Then
                        ' move o snow
                        .y = .y + .ySpeed
                        .x = .x + .xSpeed
                        ' checar a screen
                        If .y > 480 + 64 Then
                            .y = Rand(0, 100) - 100
                            .x = Rand(0, 640 + 64)
                            .ySpeed = Rand(1, 4)
                            .xSpeed = Rand(0, 4) - 2
                        End If
                        ' draw rain
                        With sRECT
                            .top = 0
                            .Bottom = 32
                            .Left = 0
                            .Right = 32
                        End With
                        Engine_BltFast .x + Camera.Left, .y + Camera.top, DDS_Bird, sRECT, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
                    Else
                        .y = Rand(0, 480)
                        .x = Rand(0, 640 + 64)
                        .ySpeed = Rand(1, 4)
                        .xSpeed = Rand(0, 4) - 2
                        .Init = True
                    End If
                End With
            Next
        End If
       
        If Map.Weather = WEATHER_SAND Then 'neve
            'Call DDS_BackBuffer.SetForeColor(RGB(255, 255, 255))
            For i = 1 To MAX_SANDDROPS
                With DropSand(i)
                    If .Init = True Then
                        ' move o snow
                        .y = .y + .ySpeed
                        .x = .x + .xSpeed
                        ' checkar a screen
                        If .y > 480 + 64 Then
                            .y = Rand(0, 100) - 100
                            .x = Rand(0, 640 + 64)
                            .ySpeed = Rand(1, 4)
                            .xSpeed = Rand(0, 4) - 2
                        End If
                        ' draw rain
                        With sRECT
                            .top = 0
                            .Bottom = 32
                            .Left = 0
                            .Right = 32
                        End With
                        Engine_BltFast .x + Camera.Left, .y + Camera.top, DDS_Sand, sRECT, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY
                    Else
                        .y = Rand(0, 480)
                        .x = Rand(0, 640 + 64)
                        .ySpeed = Rand(1, 4)
                        .xSpeed = Rand(0, 4) - 2
                        .Init = True
                    End If
                End With
            Next
        End If
    End Sub

    na modDirectDraw7 procure por:

    Código:
    ' animação
        If NumAnimations > 0 Then
            For i = 1 To MAX_BYTE
                If AnimInstance(i).Used(1) Then
                    BltAnimation i, 1
                End If
            Next
        End If

    em baixo adicione:

    Código:
    ' weather
        BltWeather

    dps procure por:

    Código:
    MAP.Music = Buffer.ReadString

    em baixo adicione:

    Código:
    MAP.Weather = Buffer.ReadLong

    dps procure por:

    Código:
    Music As String * NAME_LENGTH

    em baixo adicione:

    'Lembrese de dar 1 enter em baixo da music para ficar 1 espaço

    Código:
    Weather As Long

    dps procure por:

    Código:
    Public Type ButtonRec
        fileName As String
        state As Byte
    End Type

    em baixo adicione:

    Código:
    Type DropRec
        x As Long
        y As Long
        ySpeed As Long
        xSpeed As Long
        Init As Boolean
    End Type

    dps procure por:

    Código:
    Buffer.WriteString Trim$(.Music)

    em baixo adicione:

    Código:
    Buffer.WriteLong .Weather

    Client~Side terminado agora no Server~Side procure no savemap por:

    Código:
    Put #F, , MAP(MapNum).Music

    em baixo adicione:

    Código:
    Put #F, , MAP(MapNum).Weather

    dps procure no loadmaps por:

    Código:
    Get #F, , MAP(i).Music

    em baixo adicione:

    Código:
    Get #F, , MAP(i).Weather

    dps procure por:

    Código:
    MAP(MapNum).Music = Buffer.ReadString

    em baixo adicione:

    Código:
    MAP(MapNum).Weather = Buffer.ReadLong

    dps procure por:

    Código:
    Buffer.WriteString Trim$(MAP(MapNum).Music)

    em baixo adicione:

    Código:
    Buffer.WriteLong MAP(MapNum).Weather

    dps procure por :

    Código:
    Music As String * NAME_LENGTH

    em baixo adicione:
    De 2 enter e adicione:

    Código:
    Weather As Long


    Finalmente acabo e.e

    OBS:caso tenha algum mapa criado ele tem q ser deletado se não vai dar erro !
    OBS2: PRECISA BAIXAR ISSO ABAIXO E POR NA PASTA GRAPHICS DO TEU JOGO

    http://www.megaupload.com/?d=XBC3AA3G

    Créditos: a mim titio thales12


    _________________
    Meu fã ? Meu Amigo ? Entao Use !




    Minha Sign:

    avatar
    Faabinhuu ;
    Experiente
    Experiente

    Medalhas :
    Mensagens : 548
    Créditos : 166

    Re: Sistema de Climas

    Mensagem por Faabinhuu ; em Qui Out 27, 2011 8:26 pm

    Nunca consigo faze esses baguiu sempre da 1 erro Successful + bom tutorial
    avatar
    BrunoFox
    Aldeia Friend
    Aldeia Friend

    Mensagens : 1549
    Créditos : 32

    Re: Sistema de Climas

    Mensagem por BrunoFox em Qui Out 27, 2011 8:34 pm

    Vou tentar depois, parece util +1


    _________________
    avatar
    Valentine
    Administrador
    Administrador

    Medalhas :
    Mensagens : 4988
    Créditos : 1060

    Re: Sistema de Climas

    Mensagem por Valentine em Sex Out 28, 2011 1:10 am

    Muito bom, pena que é pra eo dx7 ;/ que eu n uso mais
    mais mesmo assim vai ajudar muita gente
    + 1 crédito


    _________________
    avatar
    Juton
    Experiente
    Experiente

    Mensagens : 490
    Créditos : 129

    Re: Sistema de Climas

    Mensagem por Juton em Sex Out 28, 2011 7:26 am

    Muito Legal vou testar aqui +1 Cred!
    avatar
    BrunoFox
    Aldeia Friend
    Aldeia Friend

    Mensagens : 1549
    Créditos : 32

    Re: Sistema de Climas

    Mensagem por BrunoFox em Ter Nov 01, 2011 10:24 am

    é pro eodx7 Marlos? '-'


    _________________
    avatar
    Jonny157
    Ocasional
    Ocasional

    Mensagens : 245
    Créditos : 9

    Re: Sistema de Climas

    Mensagem por Jonny157 em Qua Dez 07, 2011 10:27 pm

    O sistema é bom, porém o clima passa por trás dos tiles do tipo Fringe. Será que não teria como modificar para passar por cima dos tiles fringes tbm?
    avatar
    AlexsandroChaos
    Novato
    Novato

    Mensagens : 26
    Créditos : 5

    Re: Sistema de Climas

    Mensagem por AlexsandroChaos em Ter Dez 11, 2012 12:01 pm

    Cara mt bom,mas tem um problema.Conserta o link do download do arquivo
    avatar
    Kies
    Membro de Honra
    Membro de Honra

    Mensagens : 1083
    Créditos : 115

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: Sistema de Climas

    Mensagem por Kies em Sex Out 07, 2016 9:57 pm

    URGENTEEEE


    segue a correção da chuva passar atras dos fringes:

    recorte o:

    Código:
    bltweather

    e cole antes do:

    Código:
    ' Lock the backbuffer so we can draw text and names
        TexthDC = DDS_BackBuffer.GetDC


    _________________
    Visite Vofawus Online no IndieDB


    Vofawus Online

    KingGray
    Novato
    Novato

    Mensagens : 2
    Créditos : 0

    Re: Sistema de Climas

    Mensagem por KingGray em Ter Mar 14, 2017 10:43 pm

    Gostaria de ver imagens Sobre..

    Conteúdo patrocinado

    Re: Sistema de Climas

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex Nov 16, 2018 5:34 pm