Aber nicht in Version 2.
Code
#include "GlPluginUtils.au3"
#include <Bass.au3>
#include <BassConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
;minx
[/autoit] [autoit][/autoit] [autoit]; BEGIN CHANGING --------------------
$AntiAliasing = 15 ; |
$CamSpeed = 1 ; |
$BallTrans = .5 ; |
$BarTrans = .7 ; |
$Balls = 350 ; |
$BallInitSize = .3 ; |
$RoomPlusMinus = 1000 ; | 300
; STOP CHANGING ---------------------
;HotKeySet("{ESC}", "_end")
[/autoit] [autoit][/autoit] [autoit]_BASS_Startup("Bass.dll")
_BASS_Init($BASS_DEVICE_NOSPEAKER, 1, 44100, "NULL")
$hStream = _BASS_StreamCreateFile(False, FileOpenDialog('Music', '', 'MP3 (*.mp3;*.wav)'), 0, 0, $BASS_SAMPLE_FLOAT)
_BASS_ChannelPlay($hStream, 0)
_BASS_ChannelSetAttribute($hStream, $BASS_ATTRIB_VOL, 1)
Dim $Bars[2]
Dim $Spheres[$Balls]
AutoItSetOption( "TrayIconHide", 1 )
$mGui = GUICreate("minx' 3D Visualizer", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
GUISetState()
EmbedGlWindow($mGui, @DesktopWidth, @DesktopHeight, 0, 0 )
SetClearColor( 0.1, 0.1, 0.1 )
CreateLight( 0, 600, 1000, 600 )
SetLightAmbient( 0, 0.1, 0.3, 0.2 )
SetLightDiffuse( 0, 0.7, 0.7, 0.7 )
SetLightSpecular( 0, 0, 0, 0 )
For $i = 0 To 1
$Bars[$i] = ObjectCreate( )
$Box = AddCube($Bars[$i], 30, 30, 30, Random(0,1), Random(0,1), Random(0,1), $BarTrans)
;ObjectScale( $Cube1, 1, 1, 1 )
ObjectTranslate($Bars[$i], 30*$i, -40, 0 )
SetPrint($Bars[$i])
Next
For $i = 0 To $Balls -1
$Spheres[$i] = ObjectCreate( )
$Box = AddSphere($Spheres[$i], Random(-$RoomPlusMinus, $RoomPlusMinus,1), Random(-$RoomPlusMinus, $RoomPlusMinus,1), Random(-$RoomPlusMinus, $RoomPlusMinus,1), 15, $AntiAliasing, $AntiAliasing, Random(0,1), Random(0,1), Random(0,1), $BallTrans)
SetPrint($Spheres[$i])
Next
$z = 0
$Z_min = 1
SetCamera(0, 0, 300, 0, 30, 0 )
Opt( "WinTitleMatchMode", 3 )
While GUIGetMsg() <> -3
$Z -= $Z_min
If $Z = -400 Then
$Z_min = -$CamSpeed
ElseIf $z = 400 Then
$Z_min = $CamSpeed
EndIf
SetCamera($Z, 0, 400, 0, 0, 0 )
If _BASS_ChannelIsActive($hStream) = $BASS_ACTIVE_PLAYING Then
Local $iLevel = _BASS_ChannelGetLevel($hStream)
Local $nLeft = _BASS_LoWord($iLevel) / 32768
Local $nRight = _BASS_HiWord($iLevel) / 32768
$Cross = ($nLeft+$nRight)/2
ObjectScale($Bars[0], 1, $nLeft*5,1 )
ObjectScale($Bars[1], 1, $nRight*5,1)
For $i = 0 To $Balls -1
$Const = $BallInitSize+$Cross
ObjectScale($Spheres[$i], $Const, $Const, $Const)
Next
SetClearColor( $Cross, $Cross, $Cross )
ElseIf WinExists("minx' 3D Visualizer") = 0 Then
_BASS_Free()
Exit
Else
_BASS_Free()
Exit
EndIf
Sleep(10)
SceneDraw( )
Wend
_BASS_Free()
lg chess