Jump to content

Images on Cube


Malkey
 Share

Recommended Posts

This is a cube made up of six image files. One picture per side.

Left button drag left and right rotates cube about Y-axis.

Left button drag up or down rotates cube about X-axis.

Esc to Quit.

Size is governed by the factor variable $fact - Line 7 of au3 file.

If $fact = 600 size - cpu usage is in the 40's %

If $fact = 400 size - cpu usage is in the 20's% - ( current setting )

If $fact = 200 size - cpu usage below 10% on my xp.

Image files

Full path and image file name can be entered in between the quotation marks inside the array - Line 40.

If the image file is in the same directory as the script (au3 file), then only the image file name need be entered.

Image size does not matter. The "_GDIPlus_DrawImagePoints" function shrinks or enlarges the image to fit within the three specified points.

Image file types - bmp, gif, jpg, png, have tested ok.

The zip file contains the au3 file below, and these six images:-

Valik.......... http://www.autoitscript.com/forum/uploads/av-39.jpg

Valuater.... http://www.autoitscript.com/forum/uploads/av-4920.jpg

GaryFrost . http://www.autoitscript.com/forum/uploads/av-1967.gif

Jos ........... http://www.autoitscript.com/forum/uploads/av-19.png

Sm0ke N... http://www.autoitscript.com/forum/uploads/av-4813.png

PsaltyDS... http://www.autoitscript.com/forum/uploads/av-9334.jpg

I left the"_WinMove" function in, should you wish to move the box to another part of the screen - piece by piece.

PictureBox3d.zip

#include <GUIConstants.au3>
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#Include <Misc.au3>

Global $angYaxis = 0, $angXaxis = 0, $fact = 400
Global Const $iOpacity = 200
Global Const $ULW_ALPHA = 2
Global Const $nPI = 3.1415926535897932384626433832795
Global $user32_dll = DllOpen("user32.dll")
Global Const $WM_LBUTTONDOWN = 0x0201  ; Drag Window 1 of 3 addin
Global $pts[8][3] = [[-$fact  / 4, -$fact  / 4,  $fact  / 4], [ $fact  / 4, -$fact  / 4,  $fact  / 4], _
                     [-$fact  / 4,  $fact  / 4,  $fact  / 4], [-$fact  / 4, -$fact  / 4, -$fact  / 4], _
                     [-$fact  / 4,  $fact  / 4, -$fact  / 4], [ $fact  / 4, -$fact  / 4, -$fact  / 4], _
                     [ $fact  / 4,  $fact  / 4, -$fact  / 4], [ $fact  / 4,  $fact  / 4,  $fact  / 4]]
;Facing front side of Cube       - Top Left    crn is $pts[0][x,y,z]
;                                - Top Right   cnr is $pts[1][x,y,z]
;                                - Bottom Left crn is $pts[2][x,y,z]
;Facing Left Side of Cube        - Top Left    crn is $pts[3][x,y,z]
;                                - Top Right   cnr is $pts[0][x,y,z]
;                                - Bottom Left crn is $pts[4][x,y,z]
;Facing Rear Side of Cube        - Top Left    crn is $pts[5][x,y,z]
;                                - Top Right   cnr is $pts[3][x,y,z]
;                                - Bottom Left crn is $pts[6][x,y,z]
;Facing Right side of Cube       - Top Left    crn is $pts[1][x,y,z]
;                                - Top Right   cnr is $pts[5][x,y,z]
;                                - Bottom Left crn is $pts[7][x,y,z]
;Facing Top Side of Cube         - Top Left    crn is $pts[3][x,y,z]
;                                - Top Right   cnr is $pts[5][x,y,z]
;                                - Bottom Left crn is $pts[0][x,y,z]
;Facing Bottom Side of Cube      - Top Left    crn is $pts[2][x,y,z]
;                                - Top Right   cnr is $pts[7][x,y,z]
;                                - Bottom Left crn is $pts[4][x,y,z] 
; To right is Positive X-Axis, Down the screen is positive Y-Axis. 
; Projected up or out or away from the screen (moniter) is positive Z-Axis
;Left hand rule - Index finger points to right, middle finger down, thumb points to you. The three axes.

;   Image File Name Array
Global $Image[6][4] = [[0, 0, "av-39.jpg",   0], [0, 0, "av-1967.gif",0 ], [0, 0, "av-9334.jpg",0 ], _
                       [0, 0, "av-4813.png",0 ], [0, 0, "av-4920.jpg",0 ], [0, 0, "av-19.png"  ,0 ]]
;$Image[n][0] contains Gui handle
;$Image[n][1] contains Gui Title
;$Image[n][2] contains Image file name
;$Image[n][3] contains Image handle

Global $factx2 = $fact * 2
Local $mouseDiffX, $mouseDiffY, $msg, $som

$pts = MoveCenterPlus()
For $num = 5 To 0 step -1
    Init($num)
Next
Draw2D()

Do
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If _IsPressed("01", $user32_dll)  Then  ; Virtual-Key Code (0x01) Left mouse button
        $angYaxis = 0
        $mouseDiffX = 0
        $MouseStartPos = MouseGetPos()
        While _IsPressed("01", $user32_dll)    ; Virtual-Key Code (0x01) Left mouse button
            $pos = MouseGetPos()
            $mouseDiffX = Int(($pos[0] - $MouseStartPos[0]) / 10)
            $mouseDiffY = Int(($pos[1] - $MouseStartPos[1]) / 10)
            If Abs($mouseDiffX) > 0 Then
                $angXaxis = Mod($mouseDiffX, 360)
                $pts = MoveCenterMinus()
                $pts = rotateYaxis(-$angXaxis * $nPI / 180)
                $pts = MoveCenterPlus()
                Draw2D()
                Sleep(200)
            EndIf
            If Abs($mouseDiffY) > 0 Then
                $angYaxis = Mod($mouseDiffY, 360)
                $pts = MoveCenterMinus()
                $pts = rotateXaxis($angYaxis * $nPI / 180)
                $pts = MoveCenterPlus()
                Draw2D()
                Sleep(200)
            EndIf
            Sleep(20)
        WEnd
    EndIf ; mouse BTN 1 pressed??
    Sleep(20)
Until _IsPressed("1B")  ; ESC key
DllClose($user32_dll)
    _GDIPlus_Shutdown ()


Func Init($num)
    Local $hWnd, $hDC, $hBitmap, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend, $hGraphic
    $Image[$num][0] = GUICreate($Image[$num][1], $factx2, $factx2, -1, -1, -1, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
    GUIRegisterMsg($WM_LBUTTONDOWN, "_WinMove")    ; Drag Window 2 of 3 addin
    GUISetState()
    
    $iPath = $Image[$num][2]
    _GDIPlus_Startup ()
    $hWnd = _WinAPI_GetDC (0)
    $hDC = _WinAPI_CreateCompatibleDC ($hWnd)
    $hBitmap = _WinAPI_CreateCompatibleBitmap ($hWnd, $fact, $fact)
    _WinAPI_SelectObject ($hDC, $hBitmap)
    $hGraphic = _GDIPlus_GraphicsCreateFromHDC ($hDC)
    $Image[$num][3] = _GDIPlus_ImageLoadFromFile ($iPath)
    
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X",$fact)  ;$iWidth )
    DllStructSetData($tSize, "Y",$fact)  ;$iHeight)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", 1)      
    _WinAPI_UpdateLayeredWindow ($Image[$num][0] , $hWnd, 0, $pSize, $hDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    
    _GDIPlus_GraphicsDispose ($hGraphic)
    _WinAPI_ReleaseDC (0, $hWnd)
    _WinAPI_DeleteObject ($hBitmap)
    _WinAPI_DeleteDC ($hDC)
    ;_GDIPlus_Shutdown ()
    Sleep(20)
EndFunc   ;==>Init

Func Draw2D()
    Local $hGraphic, $hImage, $hWnd, $hDC
    For $num = 0 To 5
        ; Initialize GDI+ library
        _GDIPlus_Startup ()
        $iPath = $Image[$num][2]
        $hWnd = _WinAPI_GetDC (0)
        $hDC = _WinAPI_CreateCompatibleDC ($hWnd)
        $hBitmap = _WinAPI_CreateCompatibleBitmap ($hWnd, $fact, $fact)
        _WinAPI_SelectObject ($hDC, $hBitmap)
        $hGraphic = _GDIPlus_GraphicsCreateFromHDC ($hDC)       
        If $num = 0 and (($pts[2][2]+$pts[1][2])/2) > 0 Then _GDIPlus_DrawImagePoints($hGraphic, _
        $Image[$num][3], $pts[0][0], $pts[0][1], $pts[1][0], $pts[1][1], $pts[2][0], $pts[2][1])
        
        If $num = 1 and (($pts[4][2]+$pts[0][2])/2) > 0 Then _GDIPlus_DrawImagePoints($hGraphic, _
        $Image[$num][3], $pts[3][0], $pts[3][1], $pts[0][0], $pts[0][1], $pts[4][0], $pts[4][1])
        
        If $num = 2 and (($pts[6][2]+$pts[3][2])/2) > 0 Then _GDIPlus_DrawImagePoints($hGraphic, _
        $Image[$num][3], $pts[5][0], $pts[5][1], $pts[3][0], $pts[3][1], $pts[6][0], $pts[6][1])
        
        If $num = 3 and (($pts[7][2]+$pts[5][2])/2) > 0 Then _GDIPlus_DrawImagePoints($hGraphic, _
        $Image[$num][3], $pts[1][0], $pts[1][1], $pts[5][0], $pts[5][1], $pts[7][0], $pts[7][1])
        
        If $num = 4 and (($pts[0][2]+$pts[5][2])/2) > 0 Then _GDIPlus_DrawImagePoints($hGraphic, _
        $Image[$num][3], $pts[3][0], $pts[3][1], $pts[5][0], $pts[5][1], $pts[0][0], $pts[0][1])
        
        If $num = 5 and (($pts[4][2]+$pts[7][2])/2) > 0 Then _GDIPlus_DrawImagePoints($hGraphic, _
        $Image[$num][3], $pts[2][0], $pts[2][1], $pts[7][0], $pts[7][1], $pts[4][0], $pts[4][1])
        ;Second IF condition is the mid-point of the z-coordinates of the 2nd and 3rd points 
        ; which establish the image position. When this mid-point of the image moves behind 
        ; the plane of the X and Y Axes, the z-coordinate of the mid-point becomes negative.
        ; So, if z-coordinate of mid-point of image is negative, don't display image.
        
        $tSize = DllStructCreate($tagSIZE)
        $pSize = DllStructGetPtr($tSize)
        DllStructSetData($tSize, "X",$fact)  ;$iWidth )
        DllStructSetData($tSize, "Y",$fact)  ;$iHeight)
        $tSource = DllStructCreate($tagPOINT)
        $pSource = DllStructGetPtr($tSource)
        $tBlend = DllStructCreate($tagBLENDFUNCTION)
        $pBlend = DllStructGetPtr($tBlend)
        DllStructSetData($tBlend, "Alpha", $iOpacity)
        DllStructSetData($tBlend, "Format", 1)      
        _WinAPI_UpdateLayeredWindow ($Image[$num][0] , $hWnd, 0, $pSize, $hDC, $pSource, 0, $pBlend, $ULW_ALPHA)
        _GDIPlus_GraphicsDispose ($hGraphic)
        _WinAPI_ReleaseDC (0, $hWnd)
        _WinAPI_DeleteObject ($hBitmap)
        _WinAPI_DeleteDC ($hDC)
        ;_GDIPlus_Shutdown ()
    Next
EndFunc   ;==>Draw2D

Func rotateYaxis($ang)
    Local $RotYMat[3][3] = [[ Cos($ang), 0, Sin($ang) ], [ 0, 1, 0 ], [ -Sin($ang), 0, Cos($ang) ]]
    $pts = ArrayProduct($pts, $RotYMat)
    Return $pts
EndFunc   ;==>rotateYaxis

Func rotateXaxis($ang)
    Local $RotXMat[3][3] = [[1, 0, 0], [0, Cos($ang), -Sin($ang) ], [0, Sin($ang), Cos($ang) ]] 
    $pts = ArrayProduct($pts, $RotXMat)
    Return $pts
EndFunc   ;==>rotateXaxis

Func MoveCenterPlus()    ; Moves origin to center of GUI window to display rotation.
    Local $MatAdd[1][3] = [[$fact / 2, $fact / 2, 0]]
        ; Create return array
    Local $avRET[8][3]
    $avRET = matrixplusmatrix($pts, $MatAdd)
    Return $avRET
EndFunc   ;==>MoveCenterPlus

Func MoveCenterMinus()   ; Moves origin to top left corner for rotation calculation
    Local $MatMinus[1][3] = [[ -$fact / 2, -$fact / 2, 0]]
    Local $avRET[8][3]
    $avRET = matrixplusmatrix($pts, $MatMinus)
    Return $avRET
EndFunc   ;==>MoveCenterMinus

;==========================================================================
; Function:    ArrayProduct
;==========================================================================
Func ArrayProduct($avA, $avB, $m = 0)
    ; Check for parameter errors.
    If IsArray($avA) = 0 Or IsArray($avB) = 0 Then Return SetError(1, 1, 0) ; both must be arrays
    If UBound($avA, 0) <> 2 Or UBound($avB, 0) <> 2 Then Return SetError(1, 2, 0) ; both must be 2D arrays
    If UBound($avA, 2) <> UBound($avB) Then Return SetError(1, 3, 0) ; depth must match

    ; Create return array
    Local $iRows = UBound($avA), $iCols = UBound($avB, 2), $iDepth = UBound($avA, 2)
    Local $avRET[$iRows][$iCols]
    
    ; Calculate values
    For $r = 0 To $iRows - 1
        For $c = 0 To $iCols - 1
            $x = 0
            For $z = 0 To $iDepth - 1
                $x += ($avA[$r][$z] * $avB[$z][$c])
            Next
            $avRET[$r][$c] = $x
        Next
    Next
    Return $avRET
EndFunc   ;==>ArrayProduct

; Name...........: _GDIPlus_DrawImagePoints
; Description ...: Draws an image at a specified location.
Func _GDIPlus_DrawImagePoints($hGraphic, $hImage, $nULX, $nULY, $nURX, $nURY, $nLLX, $nLLY, $count = 3)
    Local $iULX, $iULY, $iURX, $iURY, $iLLX, $iLLY, $tPoint, $pPoint, $aResult
    $iULX = _WinAPI_FloatToInt ($nULX)
    $iULY = _WinAPI_FloatToInt ($nULY)
    $iURX = _WinAPI_FloatToInt ($nURX)
    $iURY = _WinAPI_FloatToInt ($nURY)
    $iLLX = _WinAPI_FloatToInt ($nLLX)
    $iLLY = _WinAPI_FloatToInt ($nLLY)
    $tPoint = DllStructCreate("int X;int Y;int X2;int Y2;int X3;int Y3")
    DllStructSetData($tPoint, "X", $iULX)
    DllStructSetData($tPoint, "Y", $iULY)
    DllStructSetData($tPoint, "X2", $iURX)
    DllStructSetData($tPoint, "Y2", $iURY)
    DllStructSetData($tPoint, "X3", $iLLX)
    DllStructSetData($tPoint, "Y3", $iLLY)
    $pPoint = DllStructGetPtr($tPoint)
    $aResult = DllCall($ghGDIPDll, "int", "GdipDrawImagePoints", _
            "hwnd", $hGraphic, _
            "hwnd", $hImage, _
            "ptr", $pPoint, _
            "int", $count)
    Return SetError($aResult[0], 0, $aResult[0] = 0)
EndFunc   ;==>_GDIPlus_DrawImagePoints

; matrix $matr1 plus matrix $matr2
Func matrixplusmatrix($matr1, $matr2)
    If UBound($matr2, 2) <> UBound($matr1, 2) Then
        SetError(0)
        Return -1
    EndIf
    Local $r = UBound($matr1), $cols = UBound($matr2, 2)
    Local $m[$r][$cols]
    For $i = 0 To $r - 1
        For $j = 0 To $cols - 1
            $m[$i][$j] = $matr1[$i][$j] + $matr2[0][$j]
        Next
    Next
    Return $m
EndFunc   ;==>matrixplusmatrix

; =================================================================
; Drag Window 3 of 3 addin (from AutoIt forum)
; =================================================================
Func _WinMove($hWnd, $Command, $wParam, $lParam)
    If BitAND(WinGetState($hWnd), 32) Then Return $GUI_RUNDEFMSG
    ;DllCall("user32.dll", "long", "SendMessage", "hwnd", $HWnd, "int", $WM_SYSCOMMAND, "int", 0xF009, "int", 0)
    DllCall("user32.dll", "int", "SendMessage", "hWnd", $hWnd, "int", $WM_NCLBUTTONDOWN, "int", $HTCAPTION, "int", 0)
EndFunc   ;==>_WinMove

This is another example of the use of the "_GDIPlus_DrawImagePoints" function, and wanted to see if it could be done.

Link to "_GDIPlus_DrawImagePoints" function post

Link to comment
Share on other sites

Few errors

C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(9,28) : ERROR: $ULW_ALPHA previously declared as a 'Const'
Global Const $ULW_ALPHA = 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(94,97) : WARNING: $WS_EX_LAYERED: possibly used before declaration.
    $Image[$num][0] = GUICreate($Image[$num][1], $factx2, $factx2, -1, -1, -1, BitOR($WS_EX_LAYERED,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(94,113) : WARNING: $WS_EX_TOPMOST: possibly used before declaration.
    $Image[$num][0] = GUICreate($Image[$num][1], $factx2, $factx2, -1, -1, -1, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(280,85) : WARNING: $WM_NCLBUTTONDOWN: possibly used before declaration.
    DllCall("user32.dll", "int", "SendMessage", "hWnd", $hWnd, "int", $WM_NCLBUTTONDOWN,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(280,104) : WARNING: $HTCAPTION: possibly used before declaration.
    DllCall("user32.dll", "int", "SendMessage", "hWnd", $hWnd, "int", $WM_NCLBUTTONDOWN, "int", $HTCAPTION,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(94,97) : ERROR: $WS_EX_LAYERED: undeclared global variable.
    $Image[$num][0] = GUICreate($Image[$num][1], $factx2, $factx2, -1, -1, -1, BitOR($WS_EX_LAYERED,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3 - 2 error(s), 4 warning(s)

[size="1"]Please stop confusing "how to" with "how do"[/size]

Link to comment
Share on other sites

Few errors

C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(9,28) : ERROR: $ULW_ALPHA previously declared as a 'Const'
Global Const $ULW_ALPHA = 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(94,97) : WARNING: $WS_EX_LAYERED: possibly used before declaration.
    $Image[$num][0] = GUICreate($Image[$num][1], $factx2, $factx2, -1, -1, -1, BitOR($WS_EX_LAYERED,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(94,113) : WARNING: $WS_EX_TOPMOST: possibly used before declaration.
    $Image[$num][0] = GUICreate($Image[$num][1], $factx2, $factx2, -1, -1, -1, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(280,85) : WARNING: $WM_NCLBUTTONDOWN: possibly used before declaration.
    DllCall("user32.dll", "int", "SendMessage", "hWnd", $hWnd, "int", $WM_NCLBUTTONDOWN,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(280,104) : WARNING: $HTCAPTION: possibly used before declaration.
    DllCall("user32.dll", "int", "SendMessage", "hWnd", $hWnd, "int", $WM_NCLBUTTONDOWN, "int", $HTCAPTION,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


~~~~~~~^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3(94,97) : ERROR: $WS_EX_LAYERED: undeclared global variable.
    $Image[$num][0] = GUICreate($Image[$num][1], $factx2, $factx2, -1, -1, -1, BitOR($WS_EX_LAYERED,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


^
C:\Documents and Settings\Jim\Desktop\GDIPlus3dImageBox.au3 - 2 error(s), 4 warning(s)
What AutoIt version are you using?
My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
Link to comment
Share on other sites

Could someone post a screenshot? I'm really curious and I'm using a shared computer... :)

-edit-

Installed AuoIt but it doesn't work... all I see is six buttons in my taskbar and Valik's avatar floating on my desktop.

Edited by Nahuel
Link to comment
Share on other sites

Thats crazy, I don't even know how you did this but nicejob... I'll look through the script later, I g2g, but good job!!

Edited by VindicatorOmega

[center]"When you look at old, classic games like Snake, you often put it off because it's such a simple game, but it's only when you actually try and create your own unique game from scratch, do you finally appreciate those games."[/center][center]Don't ask for answers if you haven't TRIED yet![/center][center]Most answers can be answered in the help file! Use it![/center]

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...