Jump to content

Nordwind

Members
  • Posts

    16
  • Joined

  • Last visited

Nordwind's Achievements

Seeker

Seeker (1/7)

0

Reputation

  1. Hey jpam... please contact me via skype. I have to talk with you about an inline-assembler for AutoIt. Greetings, Frank Nordwind
  2. "whatmeans" is trying to write an simple, but fast (inline)assembler for AutoIt... I wrote the Inline-Assembler XPIA for Profan, but XPIA use a complete other technic to do that. "whatmeans" is direct generating machinecode, what means several negativ effects, e.g. he could not uses API. My technic is to build a dll from inline-assembler-pieces and generates datas from this dll into the original sourcecode. I use MASM32 to generate this dlls and my inline assembler can use the complete MASM-syntax including all API and macros. Fine work, whatmeans!
  3. InitExtFX() generates image-datas of an image. The result of this function is a handle to following structure: 0 LONG Size of these structure without pointer to memory (40 Bytes) 4 LONG biWidth, width if the image 8 LONG biHeight, height of the image 12 WORD biPlanes, always 1 14 WORD biBitCount, always 24 16 LONG biCompression, always BI_RGB 20 LONG biSizeImage, size of image-datas in bytes 24 LONG biXPelsPerMeter, not fpr user-interest 28 LONG biYPelsPerMeter, not fpr user-interest 32 LONG biClrUsed, not for user-interest 36 LONG biClrImportant, not for user-interest 40 LONG Pointer of a memory with imagedatas
  4. CopyArray() WriteFileFast() Comeone, jpan. It's easy...
  5. Yes, ProSpeed.dll can. Use InitExtFX to get imagedatas. This function return a pointer to a memory, where by offset 20 stays a long of the bytes, the image do use. At offset 40 exists a pointer to the raw imagedatas. Sorry, no AutoIt-Example from me. I prefer writing code with Assembler & XProfan. But I'm sure, my friend jpan will help you with a codepiece. Yesterday I rewrote ProSpeeds water-effect. Look at jpans website to see new demo.
  6. Hi. Great work, jpan! Your demo is the best ProSpeed-Demo I know. And I wrote myself several ProSpeed-Demos... We'll skpye...
  7. Psa-Demo crashes without message. Testet on WinXP HE.
  8. Ok, here the bees-demo including a refresh of the background via WM_PAINT. #include <GUIConstants.au3> #include <Prospeed.au3> #include <Math.au3> Opt("MouseCoordMode",0) ;Opt("GUIOnEventMode", 1) HotKeySet("{Esc}","_exit") $gui = GUICreate("Prospeed",800, 400, -1, -1,$WS_POPUP) GUISetState() Background(@scriptdir & "\Hintergrund.jpg", 0, 0) $POSX = 0 $POSY = 0 $SprOfX = 0 $SprOfY = 0 $SpWid = 24 $SpHgt = 18 $SpFrms = 4 $SpStFrm = 1 $SpFrmSpd = 6 $SpPosX = -30 $Sprite1 = @scriptdir & "\Sprites.gif" $Sprite2 = @scriptdir & "\Sprites2.gif" $SprSpdX = 4 $SprSpdY = 4 $Bee1 = sprite($Sprite1,$SprOfX, $SprOfY, $SpWid, $SpHgt, $SpFrms, $SpStFrm, $SpFrmSpd, $SpPosX,40) DllCall($S_DLL,"long","SetSpriteMovingMode","long",$Bee1,"long",1) $NumOfSpr = 160 $EndDim = $NumOfSpr -1 Dim $CopyBee1[$NumOfSpr] For $i = 1 to $EndDim $CopyBee1[$i] = CopySprite($Bee1) DllCall($S_DLL,"long","SetSpriteMovingMode","long",$CopyBee1[$i],"long",1) SetSpriteSpeed($CopyBee1[$i], $SprSpdX, $SprSpdY) SetSpriteAnimMove($CopyBee1[$i], 1, 0, 0) SetSpriteAnimMove($CopyBee1[$i], 2, 0, 0) SetSpriteAnimMove($CopyBee1[$i], 3, 0, 0) SetSpriteAnimMove($CopyBee1[$i], 5, 0, 32) SetSpriteAnimMove($CopyBee1[$i], 6, 0, 32) SetSpriteAnimMove($CopyBee1[$i], 7, 0, 32) next Global Const $WM_PAINT = 0x000F GUIRegisterMsg($WM_PAINT, "PaintNew") GUISetState() Func PaintNew() DllCall($S_DLL,"long","CopyExtBmp","long",$hDC,"long",0,"long",0,"long",$S_WIDTH[0],"long",$S_HEIGHT[0],"long",$S_fensterkopie1[0],"long",0,"long",0,"long",0) EndFunc $Size = 20; vars for circle $OrgX = 400; $OrgY = 200; $Stp = 10; $n = 0 While 1 For $i = 1 to $EndDim - 1 $pos = MouseGetPos() $R = _Radian ($n) $X = Sin($R)*$Size * 3 + $OrgX $Y = Cos($R)*$Size * 1.5 + $OrgY moveSprite($CopyBee1[$i], $X, $Y) $n = $n + 10 if $n > 360 then $n = 0 $Size = $Size + 10 If $Size > 200 then $Size = 20 Endif Sleep(10) Next WEnd Func _exit() Exit EndFunc
  9. Here's another bees-demo. I modified lakes original code using a better sprite moving mode (bresenham). #include <GUIConstants.au3> #include <Prospeed.au3> #include <Math.au3> Opt("MouseCoordMode",0) ;Opt("GUIOnEventMode", 1) HotKeySet("{Esc}","_exit") $gui = GUICreate("Prospeed",800, 400, -1, -1,$WS_POPUP) GUISetState() Background(@scriptdir & "\Hintergrund.jpg", 0, 0) $POSX = 0 $POSY = 0 $SprOfX = 0 $SprOfY = 0 $SpWid = 24 $SpHgt = 18 $SpFrms = 4 $SpStFrm = 1 $SpFrmSpd = 6 $SpPosX = -30 $Sprite1 = @scriptdir & "\Sprites.gif" $Sprite2 = @scriptdir & "\Sprites2.gif" $SprSpdX = 4 $SprSpdY = 4 $Bee1 = sprite($Sprite1,$SprOfX, $SprOfY, $SpWid, $SpHgt, $SpFrms, $SpStFrm, $SpFrmSpd, $SpPosX,40) DllCall($S_DLL,"long","SetSpriteMovingMode","long",$Bee1,"long",1) $NumOfSpr = 160 $EndDim = $NumOfSpr -1 Dim $CopyBee1[$NumOfSpr] For $i = 1 to $EndDim $CopyBee1[$i] = CopySprite($Bee1) DllCall($S_DLL,"long","SetSpriteMovingMode","long",$CopyBee1[$i],"long",1) SetSpriteSpeed($CopyBee1[$i], $SprSpdX, $SprSpdY) SetSpriteAnimMove($CopyBee1[$i], 1, 0, 0) SetSpriteAnimMove($CopyBee1[$i], 2, 0, 0) SetSpriteAnimMove($CopyBee1[$i], 3, 0, 0) SetSpriteAnimMove($CopyBee1[$i], 5, 0, 32) SetSpriteAnimMove($CopyBee1[$i], 6, 0, 32) SetSpriteAnimMove($CopyBee1[$i], 7, 0, 32) next $Size = 20; vars for circle $OrgX = 400; $OrgY = 200; $Stp = 10; $n = 0 While 1 For $i = 1 to $EndDim - 1 $pos = MouseGetPos() $R = _Radian ($n) $X = Sin($R)*$Size * 3 + $OrgX $Y = Cos($R)*$Size * 1.5 + $OrgY moveSprite($CopyBee1[$i], $X, $Y) $n = $n + 10 if $n > 360 then $n = 0 $Size = $Size + 10 If $Size > 200 then $Size = 20 Endif Sleep(10) Next WEnd Func _exit() Exit EndFunc
  10. Look at prospeeds MouseOverSprite()...
  11. Collide() don't work pixel accurate. If you need a pixel accurat collision, you have to use Collision()... Collide bases on rectangles.
  12. Not in original. ProSpeed gives back a real handle by InitSprite(). It's a pointer to a 1024 bytes big memory, that includes all sprite parameters. I recommend urgently to use the original handles insteed of own numbers!
  13. No limit. ProSpeed can handle unlimited sprites. Look at my game "Loss of sanity" that handles with hundred of sprites: Here There's no need for SpriteMove() to return an value. You can get all infos about a sprite by prospeeds get-functions, e.g. GetSpriteInfos(): offset: 0 = actual x position 4 = actual y position 8 = destination x position 12 = destination y position 16 = has sprite arrived? (0=no / 1=yes) ? 20 = x speed 24 = y speed 28 = anim status Greetings, Nordwind/Frank
  14. Hi. Well, I know, the dll is at least in use with XProfan, C++, PureBasic and VisualBasic without any problems... But you're right. Most API saves EBX when jump back to program. So I made a new dll-version which functions do not trashes EBX. You can find it here. Hope, that will help you. > Welcome to the forum Frank ! > Many thanks for making this Dll freeware Frank! Thank you!
  15. Hi. I'm the autor of the ProSpeed.dll. jpam contacted me some weeks ago trying to use my dll with AutoIt3. And I think, he has made a great work. I decides to put his code to the ProSpeed package, with jpams permission. Myself, I'm not able to write AutoIt-sourcecodes. ProSpeed was designd as shareware to use with XProfan, an easy to learn basic/pascal like language. It is written in MASM32 Assembler. With version 2.7 I decided to make ProSpeed freeware. All grafic funktions bases on GDI and its HDCs, not on DirectX! That makes many things somewhat slower, but easier to use. The graficeffects are made by myself in assemblercode and they use GDIs fast DIBs. jpam don't use ProSpeeds sound functions in his demo, sorry for it. All ProSpeed sound function bases on DirectSound. You can use multiple sounds together at same time. A big part of ProSpeed are the sprite function. You can nearly use it veeery easy like hardware-sprites. The sprite are the best part of ProSpeed, I think. Many mouse, keyboard and joystick function are implemented. And several functions to work with strings or other memory types. Further ProSpeed have some functions to pack/unpack, tiles, timer, pixeleffects, ki (pathfinding), window manipulating, tooltips.... Test the demos to see, what is possible. About pathfinding: You better user my pathfind.dll from my website. It newer and works much better and faster. My website is available here. Have much fun with my dll and the other programs! And sorry for my bad english. I'm from germany. Best regard, Frank Abbing aka Nordwind.
×
×
  • Create New...