Jump to content

Really Really Slow Script!


cppman
 Share

Recommended Posts

here is my script.... if you would be kind enough to look through it and tell me why it goes soooooo slow... thx. I attachted the images so you can see what i mean by slow...

#include <GMFunctions.au3>
ShowImage ("Logo", "logo.jpg")
$MainWindow = GUICreate("My Game", 500, 500, -1, -1)
GUISetBkColor(0x000000)
$AmmoLabel = GUICtrlCreateLabel("Ammo Remaining: ", 5, 5)
GUICtrlSetColor($AmmoLabel, 0xffffff)
$AmmoData = GUICtrlCreateLabel("", 120, 5, 25, 25)
GUICtrlSetColor($AmmoData, 0xffffff)
GUISetState()
$Sprite = SpriteCreate ("sprite.jpg", 25, 25, 25, 475)
$x = 5
$y = 5
For $i = 1 To 100
Next
Global $Bullet, $Boss_Bullet
$Boss = SpriteCreate ("boss1.jpg", 100, 100, 250, 100)
While 1
 $BossPos = ControlGetPos("", "", $Boss)
 $Boss_AIMove = Random(1, 10, 1)
 If $Boss_AIMove = 1 Then
  BossMoveLeft()
 Else
  If $Boss_AIMove = 2 Then
   BossMoveRight()
  Else
   If $Boss_AIMove = 3 Then
    BossFire()
   Else
   EndIf
  EndIf
 EndIf
 $BulletPos = ControlGetPos("", "", $Bullet)
 If $BulletPos[0] = "2" Then
  GUICtrlDelete($Bullet)
 EndIf
 $ShipXY = ControlGetPos("", "", $Sprite)
 If _IsPressed ("28") Then
  $y = $y + 1
  SpriteMove ($Sprite, $x, $y)
 Else
  If _IsPressed ("26") Then
   $y = $y - 1
   SpriteMove ($Sprite, $x, $y)
  Else
   If _IsPressed ("25") Then
    $x = $x - 1
    SpriteMove ($Sprite, $x, $y)
   Else
    If _IsPressed ("27") Then
     $x = $x + 1
     SpriteMove ($Sprite, $x, $y)
    Else
     If _IsPressed ("20") Then
      Fire()
     EndIf
    EndIf
   EndIf
  EndIf
 EndIf
WEnd
Func Fire()
 If $Ammo <= 0 Then
  Return
 Else
  $Ammo = $Ammo - 1
  GUICtrlSetData($AmmoData, $Ammo)
  $Bullet = SpriteCreate ("bullet.jpg", 10, 10, $ShipXY[0], $ShipXY[1])
  For $i = $ShipXY[1] To 0 Step - 1
   SpriteMove ($Bullet, $ShipXY[0], $i)
  Next
 EndIf
EndFunc  ;==>Fire
Func BossFire()
 $Boss_Bullet = SpriteCreate ("boss_bullet.jpg", 70, 70, $BossPos[0], $BossPos[1])
 For $i = $BossPos[1] To 500
  SpriteMove ($Boss_Bullet, $BossPos[0], $i)
 Next
EndFunc  ;==>BossFire
Func BossMoveLeft()
 For $i = 1 To 10
  SpriteMove ($Boss, $BossPos[0], $i)
 Next
EndFunc  ;==>BossMoveLeft
Func BossMoveRight()
 For $i = 1 To 10
  SpriteMove ($Boss, $i, $BossPos[1])
 Next
EndFunc  ;==>BossMoveRight
Link to comment
Share on other sites

sorry about that...

Now we can try to understand.

First what is slow? the animation seems pretty fast.

Your problem can come from the fact the script is mono thread that's mean only one script line can be executed at a time.

I am not sure which keyboard stroke should be used and what they are supposed to do.

be more explicit on how to watch your slow problem

:o

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...