[NuclearBasic] Breakout Clone

Übersicht Andere Programmiersprachen Codearchiv & Module

Neue Antwort erstellen

 

head2003

Betreff: [NuclearBasic] Breakout Clone

BeitragSo, Jul 28, 2013 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Smile
Ich habe hier ein kleines Breakout Startup erstellt. Nix wildes, aber vielleicht eine Hilfe für den ein oder anderen. (vermutlich gibt es hier und da bessere Lösungen, ich beschäftige mich erst seit gestern mit NuclearBasic)

Code: [AUSKLAPPEN]
/*
   breakout.nb v0.5
   
   Mario Sasse - hex2 - July 2013
   (based on Blitzbasic code from Figment - Feb 2004)
*/

// Window, Random, etc. Settings
wnd = MakeWindowDX(800, 600, 32, 0, 0, 3)
If Not wnd Then DebugError("You need to update DirectX")
SetRandSeed( Millisecs() )
HidePointer

// Set Variables
maxballspd#         = 1      // max. Speed of the ball
Vx#               = 0      // x velocity
Vz#               = 0      // y velocity
lifes            = 3      // Playerlifes
blocks            = 0      // Block Counter
gamestart         = 0      // Ball waiting for click

// Set Collision Types
TYPE_BORDER        = 1    // Collision Type for Walls
TYPE_PADDLE       = 2    // Collision Type for Paddle
TYPE_BLOCKS         = 3      // Collision Type for Blocks
TYPE_BALL          = 4    // Collision Type for Ball

SetCollisions( TYPE_BALL, TYPE_BORDER )
SetCollisions( TYPE_BALL, TYPE_PADDLE )
SetCollisions( TYPE_BALL, TYPE_BLOCKS )

// Types
Type Block
   Field entity
EndType

// Lightsettings
light1=MakeLight()
PositionEnt(light1, 0,20,0)

// Camerasetting
cam=GetDefaultCamera()
SetCameraRange cam,0.5,10000
MoveEnt cam, 0.74, 55,-28.17
TurnEnt cam, 27, 0, 0

// Floor (no function)
plane=MakePlane(1000,1000)
SetEntColor plane,MakeColor(50,150,50)
PositionEnt plane,0,-5,0

// Ball
ball = MakeSphere()
PositionEnt ball, 0, 0, 50
ScaleMesh ball, 3, 3, 3
AddEntSphereShape ball, 3 
SetEntHasFeedback ball, 1
CollisionEnt( ball, TYPE_BALL )

// Paddle
paddle = MakeCube()
PositionEnt paddle, 0, 0, 30
ScaleMesh paddle, 20, 3, 2
AddEntBoxShape paddle,10,1.5,1
CollisionEnt( paddle, TYPE_PADDLE )

// Walls
bwall = MakeCube()
PositionEnt bwall,0, 0, 180
ScaleMesh bwall,100,10,4
AddEntBoxShape bwall,50,5,2
SetEntColor(bwall,MakeColor(100,150,150))
CollisionEnt( bwall, TYPE_BORDER )

rwall = MakeCube()
PositionEnt rwall,50, 0, 100
ScaleMesh rwall,4,10,160
AddEntBoxShape rwall,2,5,80
SetEntColor(rwall,MakeColor(100,150,150))
CollisionEnt( rwall, TYPE_BORDER )

lwall = MakeCube()
PositionEnt lwall,-50, 0, 100
ScaleMesh lwall,4,10,160
AddEntBoxShape lwall,2,5,80
SetEntColor(lwall,MakeColor(100,150,150))
CollisionEnt( lwall, TYPE_BORDER )

// Create Blocks
For x = -30 To 30 Step 15
   For y = 150 To 80 Step -12
      bl.Block    = New Block
      bl\entity   = MakeCube()
      PositionEnt bl\entity,x,0,y
      ScaleMesh bl\entity,12,6,6
      AddEntBoxShape bl\entity,6,3,3
      SetEntColor(bl\entity,MakeColor(Rand(0,255),Rand(0,255),Rand(0,255)))
      CollisionEnt( bl\entity, TYPE_BLOCKS )    
      blocks = blocks + 1
   Next
Next

// Main Loop
While Not KeyHit(1)
   If Do3DTweening()
      If lifes > 0 Then
         // Move Paddle
         x1# = x1# + MouseSpeedX()*0.5
           oldx# = GetEntPosX(paddle)   
           If x1# < -40 Then x1#=-40
           If x1# > 40 Then x1#=40
           PositionEnt paddle,x1#,0,30
           PFx# = (GetEntPosX(paddle) - oldx)
         
           SetMousePos Get3DWidth()/2, Get3DHeight()/2, wnd
           MouseSpeedX()
      End If

      // Update Collisions
      For c = 1 To CountCollisions(ball)
         Nx# = CollisionHitNormX#( ball, c-1 )
         Nz# = CollisionHitNormZ#( ball, c-1 )
         VdotN# = Vx#  * Nx# + Vz# * Nz#
         NFx# = -2.0 * Nx# * VdotN#
         NFz# = -2.0 * Nz# * VdotN#

         If CollisionHitType(ball, c-1) = TYPE_PADDLE Then
            /* With this part the Paddle Speed can chance the Ball Speed..
               It works, but if you move the Mouse after the Ball is lost, there is a bug */
            Vx# = Vx# + NFx# + PFx#*0.5
            Vz# = Vz# + NFz# - Abs(PFx#*0.1)
         Else
            Vx# = Vx# + NFx#
            Vz# = Vz# + NFz#
         EndIf
          
         ballspd# = Sqr(Vx# * Vx# + Vz# * Vz#)

         If ballspd# > maxballspd# Then
            Vx# = Vx# / ballspd# * maxballspd#
            Vz# = Vz# / ballspd# * maxballspd#
         EndIf
         
         If Vz = 0 Then Vz = -.1 // If vz is 0, the ball never come back, just a quick and dirty solution ;)
         
         If CollisionHitType(ball, c-1) = TYPE_BLOCKS Then
            For bl.Block Each Block
               If bl\entity = CollisionHitEnt( ball ) Then
                  KillEnt( bl\entity )
                  Delete bl
                  blocks = blocks - 1
               End If
            Next
         End If
      Next
     
      TranslateEnt ball,Vx,0,Vz
      PositionEnt ball,GetEntPosX(ball),0,GetEntPosZ(ball)


      // Ball Lost
      If GetEntPosZ(ball) < 0 Then
         PositionEnt ball, 0, 0, 50
         Vx = 0
         Vz = 0
         ballspd = 0
         gamestart = 0
         lifes = lifes - 1
      End If      
      
      // Left Mouse Click to kick the Ball
      If gamestart = 0 Then
         If MouseHit(1) Then
            Vx#   = RandF(-2,2)
            Vz#   = RandF(1,2)
            gamestart = 1
         End If
      End If
      
      Print "Lifes: " + lifes
      Print "Blocks: " + blocks
      Print "FPS: " + GetFPS()
   End If
    Sync()
Wend
  • Zuletzt bearbeitet von head2003 am Do, Aug 01, 2013 2:01, insgesamt 2-mal bearbeitet
 

head2003

BeitragDo, Aug 01, 2013 2:00
Antworten mit Zitat
Benutzer-Profile anzeigen
noch eine überarbeitete Version

Code: [AUSKLAPPEN]
/*
    breakout.nb v0.9
   
    Mario Sasse - hex2 - July 2013
    (based on Blitzbasic code from Figment - Feb 2004)
*/


// -------------------------------------------------> Variables

// System Variables
screenHeight                = 1440       // Window Height
screenWidth                 = 900       // Window Width
screenDepth                 = 32       // Window Depth
screenFullscreen            = False    // Window Fullscreen

// Game Variables
Global CurrentPlayer        = 0           // Current Player
Global RealPaddle           = True       // Paddle can affect the ball
Global BallsInGame          = 0           // Ball Counter
Global BlocksInGame         = 0           // Block Counter
Global level                = 1           // Level Counter
Global MaxLevel             = 4           // How many levels exists
Global gamestart            = 0           // Ball waiting for click

// Set Collision Types
Global TYPE_BORDER          = 1          // Collision Type for Walls
Global TYPE_PADDLE          = 2          // Collision Type for Paddle
Global TYPE_BLOCKS          = 3           // Collision Type for Blocks
Global TYPE_BALL            = 4          // Collision Type for Ball

SetCollisions( TYPE_BALL, TYPE_BORDER )
SetCollisions( TYPE_BALL, TYPE_PADDLE )
SetCollisions( TYPE_BALL, TYPE_BLOCKS )

// Window, Random, etc. Settings
Global wnd = MakeWindowDX(screenHeight, screenWidth, screenDepth, screenFullscreen)
If Not wnd Then DebugError("You need to update DirectX")
SetRandSeed( Millisecs() )
HidePointer
Font = LoadFont2D("Arial", 16)
world = GetCurrentWorld()
Global balltex = LoadTexture("ball.jpg")


// -------------------------------------------------> Types

// Types

// Blocks
Type Block
    Field entity    // entity
    Field typ        // Typ (Gadets)
    Field hits        // How much hits to break
EndType

// Balls
Type Ball
    Field ballspd#        // cur. Speed
    Field maxballspd#    // max. Speed
    Field Vx#, Vz#        // velocity
    Field x#, y#, z#    // coordinates
    Field r#            // radius
    Field entity        // entity
   Field OldX#, NewX#, OldY#, NewY#, OldZ#, NewZ#    // Variables for the rolling
EndType

// Players
Type Player
    Field x#, oldx#        // Player X Position
    Field PFx#
    Field name$
    Field score
    Field lifes
EndType

// Score Text
Type ScoreText
    Field x#, y#, z#    // Position
    Field alpha#        // Alpha
    Field r,g,b            // Text Color
    Field entity        // Entity
EndType

// -------------------------------------------------> Entitys

// Lightsettings
Global light1=GetDefaultLight()
PositionEnt(light1, 0,50,70)
SetLightCastsShadows light1

// Camerasetting
Global cam=GetDefaultCamera()
SetCameraRange cam,0.5,10000
//MoveEnt cam, 0.74, 120,-25
MoveEnt cam, 0.74, 120,-25
TurnEnt cam, 45, 0, 0

// Floor (no function)
plane=MakePlane(100,180)
SetEntColor plane,MakeColor(100,100,50)
PositionEnt plane,0,-2,100

// Paddle
Global paddle = MakeCube()
PositionEnt paddle, 0, 0, 30
ScaleMesh paddle, 10, 3, 2
AddEntBoxShape paddle,5,1.5,1
CollisionEnt( paddle, TYPE_PADDLE )
SetEntCastsShadows paddle

// Walls
Global bwall = MakeCube()
PositionEnt bwall,0, 0, 180
ScaleMesh bwall,100,10,4
AddEntBoxShape bwall,50,5,2
SetEntColor(bwall,MakeColor(100,150,150))
CollisionEnt( bwall, TYPE_BORDER )
SetEntCastsShadows bwall

Global rwall = MakeCube()
PositionEnt rwall,50, 0, 100
ScaleMesh rwall,4,10,160
AddEntBoxShape rwall,2,5,80
SetEntColor(rwall,MakeColor(100,150,150))
CollisionEnt( rwall, TYPE_BORDER )
SetEntCastsShadows rwall

Global lwall = MakeCube()
PositionEnt lwall,-50, 0, 100
ScaleMesh lwall,4,10,160
AddEntBoxShape lwall,2,5,80
SetEntColor(lwall,MakeColor(100,150,150))
CollisionEnt( lwall, TYPE_BORDER )
SetEntCastsShadows lwall

// Create Textes
Global txtname = MakeText2D("Name: ",Font)
SetEntWorld( txtname , world )
ScaleEnt( txtname , .15 , -.15 , .15 )
PositionEnt txtname,-46,10,35
RotateEnt txtname,20,-10,0   


Global txtscore = MakeText2D("Score: ",Font)
SetEntWorld( txtscore , world )
ScaleEnt( txtscore , .15 , -.15 , .15 )
PositionEnt txtscore,-47,5,35
RotateEnt txtscore,20,-10,0   

Global txtlifes = MakeText2D("Lifes: ",Font)
SetEntWorld( txtlifes , world )
ScaleEnt( txtlifes , .15 , -.15 , .15 )
PositionEnt txtlifes,35,10,35
RotateEnt txtlifes,20,10,0   

Global txtlevel = MakeText2D("Level: ",Font)
SetEntWorld( txtlevel , world )
ScaleEnt( txtlevel , .15 , -.15 , .15 )
PositionEnt txtlevel,35,5,35
RotateEnt txtlevel,20,10,0   

// Read the start stuff
ReadLevel(level)
CreateBall(0,0,50,3,2)
p1 = CreatePlayer("Mario")
CurrentPlayer = p1


// -------------------------------------------------> Main Loop

While Not KeyHit(1)
    If Do3DTweening()
        pl.Player = Object.Player(CurrentPlayer)
       
        If pl\lifes > 0 Then
            MovePaddle(CurrentPlayer)           
        End If
        UpdateBalls()
        MoveCam()
        UpdateText()
      
      // Ballpushing
      If MouseDown(2) And gamestart = 1 Then
         For ba.Ball Each Ball
            ba\Vz=ba\vz+.05
         Next
      End If
       
        // Left Mouse Click to kick the Ball
        If gamestart = 0 Then
            DeActivateEnt(paddle)
            If MouseHit(1) Then
                ActivateEnt(paddle)
                For ba.Ball Each Ball
                    ba\Vx    = RandF(-2,2)
                    ba\Vz    = RandF(1,2)
                Next
                gamestart = 1
            End If
        Else
            FlushMouse()
        End If
               
        If BlocksInGame <=0 Then
            For ba.Ball Each Ball
                KillEnt( ba\entity )
                Delete ba
            Next   
            gamestart = 0
            level = level + 1
            If level > MaxLevel Then level = 1
            ReadLevel(level)
            CreateBall(0,0,50,3,2)
         BallsInGame = 1
        End If
       
        Print "Blocks: " + BlocksInGame
      Print "Balls: " + BallsInGame
        Print "FPS: " + GetFPS()
    End If
    Sync()
Wend


// -------------------------------------------------> Functions

// Create ScoreText
Function CreateScoreText(x#,y#,z#,t$)
    sc.ScoreText = New ScoreText
    sc\x        = x
    sc\y        = y
    sc\z        = z
    sc\alpha    = 255
    sc\entity    = MakeText2D(t$,Font)
    PositionEnt sc\entity ,x,y,z
    SetEntWorld( sc\entity , world )
    ScaleEnt( sc\entity  , .15 , -.15 , .15 )
EndFunction

// Update Texts
Function UpdateText()
    pl.Player = Object.Player(CurrentPlayer)
    SetEntText (txtname, "Player: " + pl\name)
    SetEntText (txtscore, "Score: " +  pl\score)
    SetEntText (txtlevel, "Level: " + level)
    SetEntText (txtlifes, "Lifes: " +  pl\lifes)
   
    For sc.ScoreText = Each ScoreText
        MoveEnt sc\entity,0,.3,0
        SetEntColorAlpha(sc\entity,sc\alpha)
        sc\alpha = sc\alpha -5
        If sc\alpha <=0 Then
            KillEnt sc\entity
            Delete sc
        End If
    Next
EndFunction

// Create Block
Function CreateBlock(x#,y#,v$)
    typ%        = Mid$( v$, 0, 1 )
    hits%        = Mid$( v$, 1, 1 )
    r%            = Mid$( v$, 2, 3 )
    g%            = Mid$( v$, 5, 3 )
    b%            = Mid$( v$, 8, 3 )
    bl.Block    = New Block
    bl\entity    = MakeCube()
    bl\typ        = typ
    bl\hits        = hits
    PositionEnt bl\entity,x,0,y
    ScaleMesh bl\entity,12,6,6
    AddEntBoxShape bl\entity,6,3,3
    SetEntColor(bl\entity,MakeColor(r,g,b))
    CollisionEnt( bl\entity, TYPE_BLOCKS )   
    BlocksInGame = BlocksInGame + 1
    SetEntCastsShadows bl\entity
EndFunction

// Create Ball
Function CreateBall(x#,y#,z#,r#,ms#,vx#=0,vz#=0)
    ba.Ball = New Ball
    ba\maxballspd    = ms
    ba\x            = x
    ba\y            = y
    ba\z            = z
    ba\r            = r
    ba\Vx            = vx
    ba\Vz            = vz
    ba\entity        = MakeSphere()
   SetEntTexture(ba\entity, balltex)
    PositionEnt ba\entity, x, y, z
    ScaleMesh ba\entity, r, r, r
    AddEntSphereShape ba\entity, r/2 
    SetEntHasFeedback ba\entity, 1
    CollisionEnt( ba\entity, TYPE_BALL )
    BallsInGame = BallsInGame + 1
EndFunction

// Move Paddle
Function MovePaddle(p)
    p1.Player    = Object.Player(p)
    p1\x = p1\x + MouseSpeedX()*0.5
    p1\oldx = GetEntPosX(paddle)   
    If p1\x < -43 Then p1\x=-43
    If p1\x > 43 Then p1\x=43
    PositionEnt paddle,p1\x,0,30
    PFx# = (GetEntPosX(paddle) - p1\oldx)       
    SetMousePos Get3DWidth()/2, Get3DHeight()/2, wnd
    MouseSpeedX()
End Function

Function CreatePlayer(n$)
    pl.Player    = New Player
    pl\name        = n$
    pl\x        = 0
    pl\oldx        = 0
    pl\lifes    = 3
    Return Handle(pl)
EndFunction

Function MoveCam()
    pl.Player = Object.Player(CurrentPlayer)
    PositionEnt cam, pl\x/50, GetEntPosY(cam),GetEntPosZ(cam)   
EndFunction

// Update Balls
Function UpdateBalls()
    // Update Collisions
    pl.Player    = Object.Player(CurrentPlayer)
    For ba.Ball Each Ball
        For c = 1 To CountCollisions(ba\entity)
            Nx# = CollisionHitNormX#( ba\entity, c-1 )
            Nz# = CollisionHitNormZ#( ba\entity, c-1 )
            VdotN# = ba\Vx  * Nx + ba\Vz * Nz
            NFx# = -2.0 * Nx * VdotN
            NFz# = -2.0 * Nz * VdotN

            If CollisionHitType(ba\entity, c-1) = TYPE_PADDLE And RealPaddle = True Then
                ba\Vx = ba\Vx + NFx + pl\PFx*0.5
                ba\Vz = ba\Vz + NFz - Abs(pl\PFx*0.1)
            Else
                ba\Vx = ba\Vx + NFx
                ba\Vz = ba\Vz + NFz
            EndIf
           
            ba\ballspd = Sqr(ba\Vx * ba\Vx + ba\Vz * ba\Vz)

            If ba\ballspd > ba\maxballspd Then
                ba\Vx = ba\Vx / ba\ballspd * ba\maxballspd
                ba\Vz = ba\Vz / ba\ballspd * ba\maxballspd
            EndIf
           
            If ba\Vz = 0 Then ba\Vz = -.1 // If vz is 0, the ball never come back, just a quick and dirty solution ;)
            If ba\Vx = 0 Then ba\Vx = RandF(-.1,.1)
           
            If CollisionHitType(ba\entity, c-1) = TYPE_BLOCKS Then
                For bl.Block Each Block
                    If bl\entity = CollisionHitEnt( ba\entity ) Then
                        bl\hits = bl\hits - 1
                        If bl\hits <= 0 Then
                            If bl\typ = 2 Then
                                CreateBall(GetEntPosX(bl\entity),0,GetEntPosZ(bl\entity),3,2,RandF(-2,2),RandF(1,2))
                                CreateScoreText(GetEntPosX(bl\entity),GetEntPosY(bl\entity),GetEntPosZ(bl\entity),"Multiball")
                            End If
                            CreateScoreText(GetEntPosX(bl\entity),GetEntPosY(bl\entity),GetEntPosZ(bl\entity),"10")
                            KillEnt( bl\entity )
                            Delete bl
                            BlocksInGame = BlocksInGame - 1
                            pl\score = pl\score + 10
                        End If
                    End If
                Next
            End If
       Next
      
      // Let the ball rolling
      ba\OldX# = ba\NewX#
      ba\OldY# = ba\NewY#
      ba\OldZ# = ba\NewZ#
      
      ba\NewX# = GetEntPosX(ba\entity, True)
      ba\NewY# = GetEntPosY(ba\entity, True)
      ba\NewZ# = GetEntPosZ(ba\entity, True)
      
      Mx# = (ba\NewX# - ba\OldX#)
      My# = (ba\NewY# - ba\OldY#)     
      Mz# = (ba\NewZ# - ba\OldZ#)
      
      XAngleAdjust# = ((Mx# /  3) * (180.0/Pi))*1000000
      YAngleAdjust# = ((My# /  3) * (180.0/Pi))*1000000
      ZAngleAdjust# = ((Mz# / 3) * (180.0/Pi))*1000000
       TurnEntLocal ba\entity,ZAngleAdjust#,0,-XAngleAdjust#,True         

          // fix ball stucking in paddle
      pl.Player = Object.Player(CurrentPlayer)
      If GetEntPosZ(ba\entity) < GetEntPosZ(paddle) And GetEntPosZ(ba\entity) > (GetEntPosZ(paddle)+GetEntScaleZ(paddle)) Then
         If GetEntPosX(ba\entity) > GetEntPosX(paddle) And GetEntPosX(ba\entity) < (GetEntPosX(paddle)+GetEntPosX(paddle)) Then
            PositionEnt ba\entity,GetEntPosX(ba\entity),0,GetEntPosZ(paddle)+ba\r
            DeActivateEnt(paddle)
         Else
            ActivateEnt(paddle)
         End If
      End If      
      
        TranslateEnt ba\entity,ba\Vx,0,ba\Vz
        PositionEnt ba\entity,GetEntPosX(ba\entity),0,GetEntPosZ(ba\entity)

        // Ball Lost
        If GetEntPosZ(ba\entity) < 0 Or GetEntPosZ(ba\entity) > 185 Or GetEntPosX(ba\entity) < -55 Or GetEntPosX(ba\entity) > 55 Then           
            BallsInGame = BallsInGame -1
            KillEnt ba\entity
            Delete ba
        End If
       
        // Next Life
        If BallsInGame <= 0 Then
            CreateBall(0,0,50,3,2)
            gamestart = 0
            pl\lifes = pl\lifes - 1
            If pl\lifes = 0 Then
                Notice "Game Over!"
                End
            EndIf
        End If           
    Next
EndFunction

Function ReadLevel(l)
    Select l
        Case 1
        Restore Level1
        Case 2
        Restore Level2
        Case 3
        Restore Level3       
        Case 4
        Restore Level4
    End Select
   
    For y = 150 To 80 Step -12
        For x = -30 To 30 Step 15
            Read value$
            If value$ <> "00000000000" Then CreateBlock(x,y,value)
        Next
    Next   
    CreateScoreText(0,0,50,"Level" +level)
EndFunction


// -------------------------------------------------> Level Data


/*
Typ|Hits|RRR|GGG|BBB

Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"

Typ:
1 = normal
2 = new Ball
*/


// Level 1 Blocktypes
.Level1
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "11255000255", "11255000255", "21255000255", "11255000255", "11255000255"
Data "11255255000", "11255255000", "11255255000", "11255255000", "11255255000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"

.Level2
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "11255000000", "11255000000", "00000000000", "11255000000", "11255000000"
Data "11255000000", "11255000000", "21255000000", "11255000000", "11255000000"
Data "00000000000", "11255000000", "21255000000", "11255000000", "00000000000"
Data "00000000000", "00000000000", "21255000000", "00000000000", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"

.Level3
Data "11255000255", "00000000000", "11255000255", "00000000000", "21255000255"
Data "00000000000", "11255000255", "00000000000", "11255000255", "00000000000"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"
Data "00000000000", "11255000255", "00000000000", "11255000255", "00000000000"
Data "21255000255", "00000000000", "11255000255", "00000000000", "11255000255"
Data "00000000000", "00000000000", "00000000000", "00000000000", "00000000000"

.Level4
Data "12150150150", "11000255255", "22150150150", "11000255255", "12150150150"
Data "22150150150", "11000255255", "12150150150", "11000255255", "22150150150"
Data "12150150150", "11000255255", "22150150150", "11000255255", "12150150150"
Data "22150150150", "11000255255", "12150150150", "11000255255", "22150150150"
Data "12150150150", "11000255255", "22150150150", "11000255255", "12150150150"
Data "22150150150", "11000255255", "12150150150", "11000255255", "22150150150"
 

BIG BUG

BeitragSa, Aug 03, 2013 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Interessant, Nuclear Basic scheint ein inoffizielles B3D V2.0 zu sein.
Syntax ist zu großen Teilen identisch und B3D-Format kann es auch...
Schade dass im Forum nicht sehr viel los ist und das ganze dadurch doch recht klein wirkt.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

head2003

BeitragDi, Aug 06, 2013 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja die Sprache ist wirklich eine Art modernisierte B3D Version. Solange man nur unter Windows programmiert und das B3D Gefühl nicht vermissen will, ist es echt nice.

Die Community ist leider wirklich sehr klein, was mich wundert.. Es gibt schlechtere Sprachen mit größerer Community. Da die Sprache ja aber der B3D Sprache sehr ähnlich ist, kommt man auch ganz gut mit der B3D Community zurecht, da irgendwie bald jede Frage schon beantwortet wurde und unter NB sehr ähnlich zu lösen ist Very Happy

tft

BeitragSo, Aug 11, 2013 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

allerdings gibt es noch 1 bis 2 Sehr ärgerliche Bugs. Die das Speicher Interface betreffen. Die einem zum Wahnsinn treiben können. Ansonsten gebe ich dir recht. Läuft ansonsten gut. Leider sind über die hälfte der coolen Befehle nicht dokumentiert. Es fehlen fiele Funktions Beschreibungen. Die Netzwerk Funktionen sind auch noch nicht 100%.
Sie machen zufiele verschiedene Sachen ohne eines erstmal richtig fertig zu machen.

Gruss TFT
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group