1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Captain09

Beiträge von Captain09

  • Tetris

    • Captain09
    • 23. Februar 2014 um 00:55

    immer noch zu unklar?

  • Tetris

    • Captain09
    • 21. Februar 2014 um 00:36

    wurde aufgebessert

  • Tetris

    • Captain09
    • 20. Februar 2014 um 18:19

    wenn etwas unverständlich ist, helfe ich so gut ich kann ;),
    kommentieren liegt mir nicht besonders :D

  • Tetris

    • Captain09
    • 20. Februar 2014 um 17:21

    doch so viele xD
    grobe Anregungen oder Umschreibungen fände ich schon gut :/

  • Tetris

    • Captain09
    • 20. Februar 2014 um 00:25

    Hallo,

    Ich habe bis jetzt folgendes Script:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    AutoItSetOption("MustDeclareVars", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $pieces = 1

    [/autoit] [autoit][/autoit] [autoit]

    Global $points

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $BOARD_WIDTH = 10
    Global Const $BOARD_HEIGHT = 20
    Global Const $EMPTY_COLOUR = -0xFfffff
    Global Const $TOWER_COLOUR = 0x40e0d0
    Global Const $BOX_COLOUR = 0xffff00
    Global Const $PYRAMID_COLOUR = 0xff00ff
    Global Const $LLEANER_COLOUR = 0xff0000
    Global Const $RLEANER_COLOUR = 0x00ff00
    Global Const $LKNIGHT_COLOUR = 0xffa500
    Global Const $RKNIGHT_COLOUR = 0x0000CD

    [/autoit] [autoit][/autoit] [autoit]

    Global $g_lblGameBoard[$BOARD_WIDTH][$BOARD_HEIGHT]
    Global $g_lblPreviewBoard[4][4]
    Global $g_lblPreviewBoard2[4][4]
    Global $g_lblPreviewBoard3[4][4]
    Global $g_aBoard[$BOARD_WIDTH][$BOARD_HEIGHT]
    Global $g_aGameShape[4][4], $g_aPreShape[4][4], $g_aPreShape2[4][4], $g_aPreShape3[4][4]
    Global $g_nShapeX, $g_nShapeY
    Global $g_nGameTick
    Global $g_lblScore
    Global $g_btnMoveLeft, $g_btnMoveRight
    Global $g_btnRotate, $g_btnDrop
    Global $g_btnStart
    Global $g_bGameStarted = False
    Global $msg
    Global $lbLost
    Global $lost = False

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("Häcker'sches Tetris", 490, 560)

    [/autoit] [autoit][/autoit] [autoit]

    _DrawGameBoard()
    _DrawPreviewBoard()

    [/autoit] [autoit][/autoit] [autoit]

    $g_lblScore = GUICtrlCreateLabel("SCORE: 0", 350, 450, 165, 20)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetColor(-1, 0x00FF00)
    GUISetBkColor(0x000000)

    [/autoit] [autoit][/autoit] [autoit]

    $g_btnStart = GUICtrlCreateButton("START)", 350, 400, 100, 35)
    GUICtrlSetState(-1, $GUI_FOCUS)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _NewGame()
    GUICtrlDelete($lbLost)
    $lost = False
    Local $i, $j

    [/autoit] [autoit][/autoit] [autoit]

    AdlibUnRegister()
    HotKeySet("{LSHIFT}","_HoldShape")
    HotKeySet("{LEFT}", "_MoveShapeLeft")
    HotKeySet("{RIGHT}", "_MoveShapeRight")
    HotKeySet("{UP}", "_RotateShape")
    HotKeySet("{DOWN}","_MoveShapeDown")
    HotKeySet("{SPACE}", "_DropShape")
    $g_bGameStarted = False
    For $i = 0 To $BOARD_WIDTH-1
    For $j = 0 To $BOARD_HEIGHT-1
    $g_aBoard[$i][$j] = $EMPTY_COLOUR
    GUICtrlSetBkColor($g_lblGameBoard[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Next
    Next
    _NewShape()
    $g_bGameStarted = True
    _DrawGameShape()
    $g_nGameTick = 1500
    AdlibRegister("_MoveShapeDown", $g_nGameTick)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _IsPressed($hexKey)
    Local $hDll = DllOpen("user32.dll");
    Local $aR, $bRv
    $aR = DllCall($hDll, "int", "GetAsyncKeyState", "int", $hexKey)

    [/autoit] [autoit][/autoit] [autoit]

    If $aR[0] <> 0 Then
    $bRv = 1
    Else
    $bRv = 0
    EndIf
    Return $bRv
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $g_btnStart
    GUICtrlSetState($g_btnStart, $GUI_DISABLE)
    _NewGame()
    EndSelect
    WEnd
    GUIDelete()

    [/autoit] [autoit][/autoit] [autoit]

    Func _HoldShape()
    SoundPlay("hold.mp3")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _NewShape()
    Local $nShape, $i, $j

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    $g_aGameShape[$i][$j] = $EMPTY_COLOUR
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $g_nShapeX = ($BOARD_WIDTH/2)-2
    $g_nShapeY = 0
    If Not $g_bGameStarted Then
    $nShape = Random(1, 7, 1)
    ; Block Arten
    ; 1 2 3 4 5 6 7
    ; X
    ; X XX X XX XX XX XX
    ; X XX XXX XX XX X X
    ; X X X
    Switch $nShape
    Case 1
    ; Turm (hellblau)
    $g_aGameShape[1][0] = $TOWER_COLOUR
    $g_aGameShape[1][1] = $TOWER_COLOUR
    $g_aGameShape[1][2] = $TOWER_COLOUR
    $g_aGameShape[1][3] = $TOWER_COLOUR
    $g_nShapeY = 0
    Case 2
    ; Kasten (gelb)
    $g_aGameShape[1][1] = $BOX_COLOUR
    $g_aGameShape[1][2] = $BOX_COLOUR
    $g_aGameShape[2][1] = $BOX_COLOUR
    $g_aGameShape[2][2] = $BOX_COLOUR
    case 3
    ; T (violett)
    $g_aGameShape[1][1] = $PYRAMID_COLOUR
    $g_aGameShape[0][2] = $PYRAMID_COLOUR
    $g_aGameShape[1][2] = $PYRAMID_COLOUR
    $g_aGameShape[2][2] = $PYRAMID_COLOUR
    case 4
    ; versetzt (rot)
    $g_aGameShape[0][1] = $LLEANER_COLOUR
    $g_aGameShape[1][1] = $LLEANER_COLOUR
    $g_aGameShape[1][2] = $LLEANER_COLOUR
    $g_aGameShape[2][2] = $LLEANER_COLOUR
    case 5
    ; versetzt (grün)
    $g_aGameShape[2][1] = $RLEANER_COLOUR
    $g_aGameShape[1][1] = $RLEANER_COLOUR
    $g_aGameShape[1][2] = $RLEANER_COLOUR
    $g_aGameShape[0][2] = $RLEANER_COLOUR
    case 6
    ; L (orange)
    $g_aGameShape[1][1] = $LKNIGHT_COLOUR
    $g_aGameShape[2][1] = $LKNIGHT_COLOUR
    $g_aGameShape[2][2] = $LKNIGHT_COLOUR
    $g_aGameShape[2][3] = $LKNIGHT_COLOUR
    case 7
    ; gespiegeltes L (dunkelblau)
    $g_aGameShape[2][1] = $RKNIGHT_COLOUR
    $g_aGameShape[1][1] = $RKNIGHT_COLOUR
    $g_aGameShape[1][2] = $RKNIGHT_COLOUR
    $g_aGameShape[1][3] = $RKNIGHT_COLOUR
    EndSwitch
    Else

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    $g_aGameShape[$i][$j] = $g_aPreShape[$i][$j]
    Next
    Next
    If $g_aGameShape[1][0] = $TOWER_COLOUR Then $g_nShapeY = 0
    EndIf
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aPreShape[$i][$j] = $EMPTY_COLOUR
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; nächstes Teil anzeigen

    [/autoit] [autoit][/autoit] [autoit]

    $nShape = Random(1, 7, 1)
    Switch $nShape
    Case 1

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape[1][0] = $TOWER_COLOUR
    $g_aPreShape[1][1] = $TOWER_COLOUR
    $g_aPreShape[1][2] = $TOWER_COLOUR
    $g_aPreShape[1][3] = $TOWER_COLOUR
    Case 2

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape[1][1] = $BOX_COLOUR
    $g_aPreShape[1][2] = $BOX_COLOUR
    $g_aPreShape[2][1] = $BOX_COLOUR
    $g_aPreShape[2][2] = $BOX_COLOUR
    case 3

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape[1][1] = $PYRAMID_COLOUR
    $g_aPreShape[0][2] = $PYRAMID_COLOUR
    $g_aPreShape[1][2] = $PYRAMID_COLOUR
    $g_aPreShape[2][2] = $PYRAMID_COLOUR
    case 4

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape[0][1] = $LLEANER_COLOUR
    $g_aPreShape[1][1] = $LLEANER_COLOUR
    $g_aPreShape[1][2] = $LLEANER_COLOUR
    $g_aPreShape[2][2] = $LLEANER_COLOUR
    case 5

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape[2][1] = $RLEANER_COLOUR
    $g_aPreShape[1][1] = $RLEANER_COLOUR
    $g_aPreShape[1][2] = $RLEANER_COLOUR
    $g_aPreShape[0][2] = $RLEANER_COLOUR
    case 6

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape[1][1] = $LKNIGHT_COLOUR
    $g_aPreShape[2][1] = $LKNIGHT_COLOUR
    $g_aPreShape[2][2] = $LKNIGHT_COLOUR
    $g_aPreShape[2][3] = $LKNIGHT_COLOUR
    case 7

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape[2][1] = $RKNIGHT_COLOUR
    $g_aPreShape[1][1] = $RKNIGHT_COLOUR
    $g_aPreShape[1][2] = $RKNIGHT_COLOUR
    $g_aPreShape[1][3] = $RKNIGHT_COLOUR
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aPreShape[$i][$j] = $EMPTY_COLOUR Then
    GUICtrlSetBkColor($g_lblPreviewBoard[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Else

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetBkColor($g_lblPreviewBoard[$i][$j], $g_aPreShape[$i][$j])
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; übernächstes Teil anzeigen
    If $pieces >=2 Then
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aPreShape2[$i][$j] = $EMPTY_COLOUR
    Next
    Next
    $nShape = Random(1, 7, 1)
    Switch $nShape
    Case 1

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][0] = $TOWER_COLOUR
    $g_aPreShape2[1][1] = $TOWER_COLOUR
    $g_aPreShape2[1][2] = $TOWER_COLOUR
    $g_aPreShape2[1][3] = $TOWER_COLOUR
    Case 2

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][1] = $BOX_COLOUR
    $g_aPreShape2[1][2] = $BOX_COLOUR
    $g_aPreShape2[2][1] = $BOX_COLOUR
    $g_aPreShape2[2][2] = $BOX_COLOUR
    case 3

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][1] = $PYRAMID_COLOUR
    $g_aPreShape2[0][2] = $PYRAMID_COLOUR
    $g_aPreShape2[1][2] = $PYRAMID_COLOUR
    $g_aPreShape2[2][2] = $PYRAMID_COLOUR
    case 4

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[0][1] = $LLEANER_COLOUR
    $g_aPreShape2[1][1] = $LLEANER_COLOUR
    $g_aPreShape2[1][2] = $LLEANER_COLOUR
    $g_aPreShape2[2][2] = $LLEANER_COLOUR
    case 5

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[2][1] = $RLEANER_COLOUR
    $g_aPreShape2[1][1] = $RLEANER_COLOUR
    $g_aPreShape2[1][2] = $RLEANER_COLOUR
    $g_aPreShape2[0][2] = $RLEANER_COLOUR
    case 6

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][1] = $LKNIGHT_COLOUR
    $g_aPreShape2[2][1] = $LKNIGHT_COLOUR
    $g_aPreShape2[2][2] = $LKNIGHT_COLOUR
    $g_aPreShape2[2][3] = $LKNIGHT_COLOUR
    case 7

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[2][1] = $RKNIGHT_COLOUR
    $g_aPreShape2[1][1] = $RKNIGHT_COLOUR
    $g_aPreShape2[1][2] = $RKNIGHT_COLOUR
    $g_aPreShape2[1][3] = $RKNIGHT_COLOUR
    EndSwitch
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aPreShape2[$i][$j] = $EMPTY_COLOUR Then
    GUICtrlSetBkColor($g_lblPreviewBoard2[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Else
    GUICtrlSetBkColor($g_lblPreviewBoard2[$i][$j], $g_aPreShape2[$i][$j])
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; über-übernächstes Teil anzeigen
    If $pieces >=3 Then
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aPreShape3[$i][$j] = $EMPTY_COLOUR
    Next
    Next
    $nShape = Random(1, 7, 1)
    Switch $nShape
    Case 1

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][0] = $TOWER_COLOUR
    $g_aPreShape2[1][1] = $TOWER_COLOUR
    $g_aPreShape2[1][2] = $TOWER_COLOUR
    $g_aPreShape2[1][3] = $TOWER_COLOUR
    Case 2

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][1] = $BOX_COLOUR
    $g_aPreShape2[1][2] = $BOX_COLOUR
    $g_aPreShape2[2][1] = $BOX_COLOUR
    $g_aPreShape2[2][2] = $BOX_COLOUR
    case 3

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][1] = $PYRAMID_COLOUR
    $g_aPreShape2[0][2] = $PYRAMID_COLOUR
    $g_aPreShape2[1][2] = $PYRAMID_COLOUR
    $g_aPreShape2[2][2] = $PYRAMID_COLOUR
    case 4

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[0][1] = $LLEANER_COLOUR
    $g_aPreShape2[1][1] = $LLEANER_COLOUR
    $g_aPreShape2[1][2] = $LLEANER_COLOUR
    $g_aPreShape2[2][2] = $LLEANER_COLOUR
    case 5

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[2][1] = $RLEANER_COLOUR
    $g_aPreShape2[1][1] = $RLEANER_COLOUR
    $g_aPreShape2[1][2] = $RLEANER_COLOUR
    $g_aPreShape2[0][2] = $RLEANER_COLOUR
    case 6

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[1][1] = $LKNIGHT_COLOUR
    $g_aPreShape2[2][1] = $LKNIGHT_COLOUR
    $g_aPreShape2[2][2] = $LKNIGHT_COLOUR
    $g_aPreShape2[2][3] = $LKNIGHT_COLOUR
    case 7

    [/autoit] [autoit][/autoit] [autoit]

    $g_aPreShape2[2][1] = $RKNIGHT_COLOUR
    $g_aPreShape2[1][1] = $RKNIGHT_COLOUR
    $g_aPreShape2[1][2] = $RKNIGHT_COLOUR
    $g_aPreShape2[1][3] = $RKNIGHT_COLOUR
    EndSwitch
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aPreShape3[$i][$j] == $EMPTY_COLOUR Then
    GUICtrlSetBkColor($g_lblPreviewBoard3[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Else
    GUICtrlSetBkColor($g_lblPreviewBoard3[$i][$j], $g_aPreShape3[$i][$j])
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MoveShapeLeft()
    _MoveShape(-1, 0)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MoveShapeRight()
    _MoveShape(1, 0)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MoveShapeDown()
    _MoveShape(0, 1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DropShape()
    AdlibUnRegister()
    AdlibRegister("_MoveShapeDown", 1)
    SoundPlay("drop.mp3")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MoveShape($nMoveX, $nMoveY)
    Local $nCollision, $i, $j
    Local $bFilled, $x, $y
    Local $sScoreText, $nScore

    [/autoit] [autoit][/autoit] [autoit]

    If _CollisionTest($nMoveX, $nMoveY) Then
    If $nMoveY = 1 Then
    If $g_nShapeY < 1 Then
    AdlibUnRegister()
    If $lost == False Then
    Global $lbLost = GUICtrlCreateLabel("Game over", 30, 180, 350, 78)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 45, 400, 0, "@Arial Unicode MS")
    GUICtrlSetColor(-1, 0xFF0000)
    $lost = true
    EndIf
    GUICtrlSetState($g_btnStart, $GUI_ENABLE)
    HotKeySet("{LEFT}")
    HotKeySet("{RIGHT}")
    HotKeySet("{DOWN}")
    HotKeySet("{SPACE}")
    Return
    Else

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aGameShape[$i][$j] <> $EMPTY_COLOUR Then
    $g_aBoard[$g_nShapeX+$i][$g_nShapeY+$j] = $g_aGameShape[$i][$j]
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $j = 0 To ($BOARD_HEIGHT-1)
    $bFilled = True
    For $i = 0 To ($BOARD_WIDTH-1)
    If $g_aBoard[$i][$j] = $EMPTY_COLOUR Then
    $bFilled = False
    ExitLoop
    EndIf
    Next
    If $bFilled Then
    SoundPlay("clear.mp3")
    $sScoreText = GUICtrlRead($g_lblScore)
    $points = 100
    $nScore = Number(StringRight($sScoreText, StringLen($sScoreText)-7))+$points

    [/autoit] [autoit][/autoit] [autoit]

    If Mod($nScore, 50) = 0 Then
    $g_nGameTick -= 10
    EndIf
    GUICtrlSetData($g_lblScore, "SCORE: " & $nScore)
    For $x = 0 To ($BOARD_WIDTH-1)
    For $y = $j To 1 Step -1
    $g_aBoard[$x][$y] = $g_aBoard[$x][$y-1]
    Next
    Next
    _RedrawGameBoard()
    EndIf
    Next
    AdlibUnRegister()
    _NewShape()
    _DrawGameShape()
    AdlibRegister("_MoveShapeDown", $g_nGameTick)
    EndIf
    EndIf
    Else
    _DrawGameShape(True)
    If $nMoveX <> 0 Then $g_nShapeX += $nMoveX
    If $nMoveY <> 0 Then $g_nShapeY += $nMoveY
    _DrawGameShape()
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _RotateShape()
    Local $i, $j, $aTempShape[4][4]

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    $aTempShape[3-$j][$i] = $g_aGameShape[$i][$j]
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    If $aTempShape[$i][$j] <> $EMPTY_COLOUR Then
    If ($g_nShapeX+$i) < 0 Or ($g_nShapeX+$i) > ($BOARD_WIDTH- 1) Or _
    ($g_nShapeY+$j) < 0 Or ($g_nShapeY+$j) > ($BOARD_HEIGHT-1) Then
    Return
    EndIf
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $x = 0 To ($BOARD_WIDTH-1)
    For $y = 0 To ($BOARD_HEIGHT-1)
    If $x >= $g_nShapeX And $x < ($g_nShapeX+4) Then
    If $y >= $g_nShapeY And $y < ($g_nShapeY+4) Then
    If $g_aBoard[$x][$y] <> $EMPTY_COLOUR Then
    If $aTempShape[$x-$g_nShapeX][$y-$g_nShapeY] <> $EMPTY_COLOUR Then
    Return
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _DrawGameShape(True)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    $g_aGameShape[$i][$j] = $aTempShape[$i][$j]
    Next
    Next
    _DrawGameShape()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _CollisionTest($nMoveX, $nMoveY)
    Local $nNewX = $g_nShapeX+$nMoveX
    Local $nNewY = $g_nShapeY+$nMoveY
    Local $i, $j, $x, $y

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aGameShape[$i][$j] <> $EMPTY_COLOUR Then
    If ($nNewX+$i) < 0 Or ($nNewX+$i) > ($BOARD_WIDTH-1) Or _
    ($nNewY+$j) < 0 Or ($nNewY+$j) > ($BOARD_HEIGHT-1) Then
    Return True
    EndIf
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $x = 0 To ($BOARD_WIDTH-1)
    For $y = 0 To ($BOARD_HEIGHT-1)
    If $x >= $nNewX And $x < ($nNewX+4) Then
    If $y >= $nNewY And $y < ($nNewY+4) Then
    If $g_aBoard[$x][$y] <> $EMPTY_COLOUR Then
    If $g_aGameShape[$x-$nNewX][$y-$nNewY] <> $EMPTY_COLOUR Then
    Return True
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    Next
    Return False
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DrawGameShape($bRemove = False)
    Local $i, $j

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aGameShape[$i][$j] <> $EMPTY_COLOUR Then
    If $bRemove Then
    GUICtrlSetBkColor($g_lblGameBoard[$g_nShapeX+$i][$g_nShapeY+$j], $GUI_BKCOLOR_TRANSPARENT)
    Else
    GUICtrlSetBkColor($g_lblGameBoard[$g_nShapeX+$i][$g_nShapeY+$j], $g_aGameShape[$i][$j])
    EndIf
    EndIf
    Next
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DrawGameBoard()
    Local $i, $j
    Local $x, $y

    [/autoit] [autoit][/autoit] [autoit]

    $x = 20
    $y = 20
    For $i = 0 To $BOARD_WIDTH-1
    For $j = 0 To $BOARD_HEIGHT-1
    GUICtrlCreateLabel("", $x, $y, 25, 25, $SS_BLACKFRAME)
    $g_lblGameBoard[$i][$j] = GUICtrlCreateLabel("", $x+1, $y+1, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $y = $y+26
    Next
    $x = $x+26
    $y = 20
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DrawPreviewBoard()
    Local $i, $j
    Local $x, $y

    [/autoit] [autoit][/autoit] [autoit]

    $x = 340
    $y = 40
    GUICtrlCreateLabel("Next Shape:", $x, 20, 104, 18)
    For $i = 0 To 3
    For $j = 0 To 3
    GUICtrlCreateLabel("", $x, $y, 25, 25)
    GUICtrlSetColor(-1, 0x00FF00)
    $g_lblPreviewBoard[$i][$j] = GUICtrlCreateLabel("", $x+1, $y+1, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $g_lblPreviewBoard2[$i][$j] = GUICtrlCreateLabel("", $x+1, $y+120, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $g_lblPreviewBoard3[$i][$j] = GUICtrlCreateLabel("", $x+1, $y+240, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $y = $y+26
    Next
    $x = $x+26
    $y = 40
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _RedrawGameBoard()
    Local $i, $j

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To $BOARD_WIDTH-1
    For $j = 0 To $BOARD_HEIGHT-1
    If $g_aBoard[$i][$j] = $EMPTY_COLOUR Then
    GUICtrlSetBkColor($g_lblGameBoard[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Else
    GUICtrlSetBkColor($g_lblGameBoard[$i][$j], $g_aBoard[$i][$j])
    EndIf
    Next
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]

    Jetzt möchte ich die nächsten 3 Teile anzeigen lassen und das mit dem Shift einfügen, aber ich tue mich etwas schwer, das Problem anzugehen.
    Eigentlich war das Script ja nur für das nächste Teil gedacht, deshalb habe ich leider garkeine Ahnung, wie ich das jetzt für die nächsten beiden machen soll...
    Meine Ansätze habe ich schonmal, so weit es ging eingebaut.

    Anforderungsdefinition:
    In ein, soweit funktionierendes Tetris-Spiel sollen folgende Features implementiert werden:
    - die nächsten 3 Teile werden rechts vom Spielfeld angezeigt
    - per Hotkey (Shift) kann man ein Teil einlagern (für später aufheben) und wieder abrufen

    Hier ein Bild, mit 2 Teilen rechts, allerdings wird in Wirklichkeit nur das nächste korrekt angezeigt, das übernächste wurde zufällig generiert:
    [Blockierte Grafik: http://puu.sh/73GPw.png] 
    Das zweite soll eingebunden werden und ein drittes hinzugefügt.

    Ich würde mich über Antworten freuen

    LG
    Captain09

  • Mikrofon aufnehmen

    • Captain09
    • 9. Februar 2014 um 02:18

    Hallo,
    ich möchte mit Autoit automatisch das angeschlossene Mikrofon erkennen und aufnehmen können,
    das ganze soll dann als mp3 abgespeichert werden.
    LG
    Captain09

  • Mikrofon aufnehmen

    • Captain09
    • 28. Januar 2014 um 16:04

    Hallo,
    Ich möchte mittels eines Autoit Scriptes den in ein Mikrofon gesprochenen Ton aufnehmen.
    Gibt es dafür eine UDF oder so?
    LG
    Captain09

  • includes als trojaner erkannt

    • Captain09
    • 21. Januar 2014 um 00:03

    und wenn ich ein Programm als freeware, aber closed source veröffentlichen will?

  • includes als trojaner erkannt

    • Captain09
    • 20. Januar 2014 um 23:25

    das heißt auch diesem programm kann man vertrauen? :
    https://www.virustotal.com/de/file/45dd45…sis/1390256674/

  • includes als trojaner erkannt

    • Captain09
    • 20. Januar 2014 um 22:59

    bringt nicht wirklich was:
    https://www.virustotal.com/de/file/49879e…sis/1390255171/

  • includes als trojaner erkannt

    • Captain09
    • 20. Januar 2014 um 22:42

    Hallo,
    ich habe in einigen meiner Scripts diese includes:

    [autoit]


    #include <ScreenCapture.au3>
    #include <Array.au3>
    #include <WinAPI.au3>
    #include <FTP.au3>
    #include <FTPEx.au3>
    #include <Gdiplus.au3>
    #include <String.au3>

    [/autoit]

    allein diese includes in einem einzelnen script oder in jeglicher verbindung mit anderem code werden als trojaner o. ä. erkannt, sogar trotz obfuscator:
    https://www.virustotal.com/de/file/c9afe8…sis/1390253887/

    kann mir das jemand erklären und oder wie ich dieses problem löse?
    Niemand will ein Programm, dass als Trojaner erkannt wird :/

    LG
    Captain09

  • Mp3 Datei in Script einbinden und abspielen

    • Captain09
    • 18. Januar 2014 um 00:54

    muss ich in beide funktionen den output einfügen?

  • Mp3 Datei in Script einbinden und abspielen

    • Captain09
    • 18. Januar 2014 um 00:35

    keiner der beiträge mit der nummer 7 ergibt für mich in diesem kontext sinn, sag doch einfach was du meinst

  • Mp3 Datei in Script einbinden und abspielen

    • Captain09
    • 18. Januar 2014 um 00:20

    von welchem thema beitrag #7?

  • Mp3 Datei in Script einbinden und abspielen

    • Captain09
    • 18. Januar 2014 um 00:07

    habs hinbekommen^^
    keine Ahnung woran es lag, aber erneutes Umwandeln hat das Problem gelöst,
    nächstes Problem:
    ohne die bass.dll im selben ordner wie die exe läuft es nicht :(
    kann man dll ihrgendwie mitcompilen?

  • Mp3 Datei in Script einbinden und abspielen

    • Captain09
    • 17. Januar 2014 um 23:54

    Problem weitestgehend gelöst,
    aber es ruckelt unglaublich beim Abspielen,
    heißt das, es ist noch nicht im Hauptspeicher oder liegt es an Autoit etc?
    wie kann ich das ändern?

  • Mp3 Datei in Script einbinden und abspielen

    • Captain09
    • 17. Januar 2014 um 23:32

    ich habe gelesen, dass das Einbinden in eine exe ohne ihrgendwelche Dateien zu entpacken etc diese ist,
    wenn jemand allerdings eine andere Möglichkeit findet, bei der die Musikdatei sofort im Hauptspeicher beim Ausführen landet, nehme ich sie
    gerne entgegen :)
    war nur eine anregung^^

  • Mp3 Datei in Script einbinden und abspielen

    • Captain09
    • 17. Januar 2014 um 22:35

    Hallo,
    Ich möchte gerne, dass mithilfe dieses Scriptes:
    https://www.autoit.de/index.php?page=Thread&postID=237745
    diese Musikdatei:
    http://killer0709.pf-control.de/song.mp3
    in ein Script eingebunden wird und ich das ganze zb. mit einem Button abspielen kann.

    LG
    Captain09

  • Internet-Geschwindigkeit messen

    • Captain09
    • 13. Januar 2014 um 01:38

    Hallo,
    ich möchte ein Programm, dass meine Internetgeschwindigkeit testet.
    Hier habe ich eine Datei, die exakt 10MB groß ist:
    http://killer0709.pf-control.de/speed/test.txt
    ich bin leider nicht in der Lage, das selbst umzusetzen, aber ich hoffe, dass die Datei hilft.
    LG
    Captain09

  • wörter vergleichen und gemeinsame buchstaben ausgeben

    • Captain09
    • 12. Januar 2014 um 23:50

    Hallo,
    Wie kann man 3 Strings miteinander vergleichen und gemeinsame Inhalte ausgeben lassen?
    LG
    Captain09

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™