locked
mahreen miangul JanUary 2018 RRS feed

  • General discussion

  •                               Greetings 2018 VHS349                                                              mahreen miangul
    • Changed type litdev Wednesday, January 3, 2018 7:16 PM
    Wednesday, January 3, 2018 11:47 AM

All replies

  •                HAPPY NEW YEAR 2018 ID RQP692                                                                  mahreen miangul   
    Wednesday, January 3, 2018 12:17 PM
  • ' mahreen miangul 
    ' Multiple KeyBoard
    ' JanUary 2018
      'GraphicsWindow.Left = 0.5 * (Desktop.Width - GraphicsWindow.Width)
      'GraphicsWindow.Top = 0.5 * (Desktop.Height - GraphicsWindow.Height)
    GraphicsWindow.top= -2.0 
    GraphicsWindow.left= 80
    GraphicsWindow.Title = "mahreen miangul"
    GraphicsWindow.BackgroundColor="rosybrown" 
    GraphicsWindow.Width = "1280"
    GraphicsWindow.Height = "666"
    GraphicsWindow.KeyDown = onkeyDown
    '=============================Makesprite()============================
    SPRITE_init()
    add_shapes()
    ' ============================== Aircraft Animation======================
    dZ = 0.1
    zoom = 1
    ddx=0
    ddy=0
    bdx=0
    bdy=0
    bdy2=5         ' <------   initial ball2 moving speed-Y
    ANMB="5:1"
    BNMB="6:1" ' <-----   Blue car shapes number=6 repeat =1
    shoot="False"
    shoot2="False" ' <-----  
    zm=1
    Hit_count=0
    No_hit=0
    ' ============================== Cannon Animation ==============================
    GraphicsWindow.PenWidth = 0
    GraphicsWindow.BrushColor= "Red"
    Ball=Shapes.AddEllipse(10,20)
    Shapes.Move(Ball,shapes.GetLeft(shp[ANMB][9])+10,shapes.Gettop(shp[ANMB][9])+30)
    Shapes.HideShape(Ball)
    GraphicsWindow.BrushColor= "Navy"      ' <----- 
    Ball2=Shapes.AddEllipse(10,20)         ' <-----
    Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][14]),shapes.Gettop(shp[BNMB][14]))' <-----
    Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][15]),shapes.Gettop(shp[BNMB][15]))' <----- 
    Shapes.HideShape(Ball2)' <----- 
    ' ============================== BlueCar Timer ====================================
    Timer.Interval=800
    Timer.Tick=BlueCar_up
    ' ==============================Aircraft Animation and Blinkig 1======================
    While "True" '    And "North" <> "South"    <---  No meanig  ,  it  always "True"
      Program.Delay(20)  
      '============================Aircraft Blinking Program=======================
      zoom = zoom - dZ
      For i = 1 To Array.GetItemCount(shape[5])
        If Array.ContainsValue(shape[5][i], "eye") Then
          Shapes.Zoom(shp[ANMB][i], 1, zoom)
        ElseIf Array.ContainsValue(shape[5][i], "mouth") Then 
          Shapes.Zoom(shp[ANMB][i], zoom, zoom)
        EndIf
        shapes.Move(shp[ANMB][i],shapes.GetLeft(shp[ANMB][i])+ddx,shapes.Gettop(shp[ANMB][i])+ddy)
      EndFor
      If zoom = 0.1 Or zoom = 1 Then
        dZ = -dZ
      EndIf
     ' ============================haroon rashid 1==========================
     mmm= Math.GetRandomNumber(80) '  blinking star number
     If mmm=50 Then 
      Program.Delay(30)
       zm=zm+0.1
       EndIf
        Program.Delay(20)    ' <<<<>>>>
       '============================Aircraft Reverse Moving=====X,Y Direction=============
      cycleX= shapes.GetLeft(shp[ANMB][5])
      cycleY= shapes.GetTop(shp[ANMB][5])
      If cycleX<0 Or cycleX>GraphicsWindow.Width Then
        ddx=-ddx
      EndIf
      If cycleY<0 Or cycleY>200 Then
        ddy=-ddy
      EndIf
      ' ===========================BallFire=======================================
      If shoot Then 
        shapes.Move(Ball ,shapes.GetLeft(ball)-bdx/2,shapes.Gettop(ball)-bdy/2)
        If shapes.Gettop(ball)>700 Then
          shoot="False"
          No_hit=No_hit+1
          GraphicsWindow.Title="You Hit !!!!!! Total "+(Hit_count*10-No_hit*5) +" Points get"
          Shapes.Move(Ball,shapes.GetLeft(shp[ANMB][9])+10,shapes.Gettop(shp[ANMB][9])+30)
          Shapes.HideShape(Ball)
        EndIf
     '==========================Collision Check Here=================================
        BCar_X=shapes.GetLeft(shp[BNMB][5])
        BCar_Y=shapes.GetTop(shp[BNMB][5])
        ballX=shapes.GetLeft(ball)
        bally=shapes.GetTop(ball)
        If (BCar_X<ballx+5 and ballX<BCar_X+40) and (BCar_Y<bally+10 and bally<BCar_Y+90) Then
          Hit_count=Hit_count+1
          GraphicsWindow.Title="Aircraft Hit blue car !!!!!!" 
          Sound.PlayChimeAndWait()
          shoot="False"
          Shapes.Move(Ball,shapes.GetLeft(shp[ANMB][9])+10,shapes.Gettop(shp[ANMB][9])+30)
          Shapes.HideShape(Ball)
        EndIf
      EndIf
      If shoot2 Then                      ' <----- 
        shapes.Move(Ball2 ,shapes.GetLeft(ball2)+angle/4,shapes.Gettop(ball2)-bdy2)' <----- 
        If shapes.Gettop(ball2)<-100 Then ' <----- 
          shoot2="False"                  ' <----- 
       Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][14]),shapes.Gettop(shp[BNMB][14]))' <-----
       Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][15]),shapes.Gettop(shp[BNMB][15]))' <----- 
          Shapes.HideShape(Ball2)         ' <----- 
        EndIf   
    endif    ' <----- 
        ' Collision Check Here 
        ballX2=shapes.GetLeft(ball2)      ' <----- 
        bally2=shapes.GetTop(ball2)       ' <----- 
        If (cycleX<ballx2 and ballX2<cycleX+(400-150)/2) and (cycley<bally2 and bally2<cycley+(150-50)/2) Then ' ' <----- 
          GraphicsWindow.Title="Blue car Hit  Aircraft!!!!!!!!!!!"' <----- 
          Sound.PlayChimeAndWait()        ' <----- 
          shoot2="False"                  ' <----- 
          Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][14]),shapes.Gettop(shp[BNMB][14]))' <-----
          Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][15]),shapes.Gettop(shp[BNMB][15]))' <----- 
          Shapes.HideShape(Ball2)         ' <----- 
        EndIf                             ' <----- 
    ' ==============================Aircraft Animation and Blinkig 2======================
    endwhile    ' <----- 
    '============================Blue Car Animation==================================
    Sub BlueCar_up
      MM=MM+1
      If MM=23 Then
        MM=0
      EndIf
      Timer.Pause()
      For k=1 To Array.GetItemCount(s[6])
        For L=1 To Array.GetItemCount(shape[6])-1 ' <-----
          Shapes.Rotate(SHP["6:"+k][L],Shape[6][L]["angle"])
        EndFor
      EndFor

     Program.Delay(300)
      For k=1 To Array.GetItemCount(s[6])
        For L=1 To Array.GetItemCount(shape[6])-1      ' <----- 
          Shapes.Rotate(SHP["6:"+K][L], 0)
        EndFor
      EndFor
      Program.Delay(30)
      Timer.Resume()
    EndSub
    ' ==============================Add Sprites=========================================
    Sub add_shapes
      For M=1 To Array.GetItemCount(s)
        For N=1 To Array.GetItemCount(s[M])
          ss=s[M][N]
          _shx=shx[M][N]
          _shY=shY[M][N]
          _shape=shape[M]
          NMB=M+":"+N
          For i=1 To Array.GetItemCount(_shape)
            GraphicsWindow.PenWidth = _shape[i]["pw"]
            GraphicsWindow.BrushColor = _shape[i]["bc"]
            GraphicsWindow.penColor = _shape[i]["pc"] 
            If _shape[i]["func"]="ell" Then 
              shp[NMB][i] = Shapes.AddEllipse(_shape[i]["width"]*ss, _shape[i]["height"]*ss) 
            ElseIf _shape[i]["func"]="rect" Then 
              shp[NMB][i] = Shapes.AddRectangle(_shape[i]["width"]*ss, _shape[i]["height"]*ss)
            ElseIf _shape[i]["func"]="tri" Then 
              shp[NMB][i] = Shapes.Addtriangle(_shape[i]["x1"]*ss, _shape[i]["y1"]*ss,_shape[i]["x2"]*ss, _shape[i]["y2"]*ss, _shape[i]["x3"]*ss, _shape[i]["y3"]*ss) 
            ElseIf _shape[i]["func"]="line" Then 
              shp[NMB][i] = Shapes.Addline(_shape[i]["x1"]*ss, _shape[i]["y1"]*ss,_shape[i]["x2"]*ss, _shape[i]["y2"]*ss)
            EndIf
            Shapes.Animate(shp[NMB][i], _shape[i]["x"]*ss+_shX, _shape[i]["y"]*ss+_shY, 500) 
            Shapes.Rotate(shp[NMB][i], _Shape[i]["angle"])
          EndFor
        EndFor
      EndFor
    EndSub

    ' ==================KeyBoard Aniation Keys S, W, A, T, X,Z,F , SpaceBar works===========================
    Sub OnKeyDown
      key= GraphicsWindow.LastKey
      If key="S" Then
        ddx=6
      ElseIf Key="W"Then
        ddx=-6
      ElseIf Key="A"Then
        ddy=6
      ElseIf key="T"Then
        ddy=-6
      ElseIf key="Space" Then
        ddx=0
        ddy=0
      EndIf

      If shoot="False" Then 
        If Key="H" Then
          Shapes.Move(Ball,shapes.GetLeft(shp[ANMB][9])+10,shapes.Gettop(shp[ANMB][9])+30) 
          Shapes.ShowShape(Ball)
          bdy=(Shapes.Gettop(ball)-shapes.Gettop(shp[BNMB][1]))/4.6
          bdx=(Shapes.GetLeft(ball)-shapes.GetLeft(shp[BNMB][1]))/4
          shoot="True"
        EndIf
      EndIf
      If shoot2="False" Then                ' <----- 
        If Key = "X" Then                   ' <----- 
          angle=angle+1                     ' <----- 
          Shapes.Rotate(shp[BNMB][14],angle)' <----- 
          Shapes.Rotate(shp[BNMB][15],angle)' <----- 
        ElseIf Key = "Z" Then               ' <----- 
          angle=angle-1                     ' <----- 
          Shapes.Rotate(shp[BNMB][14],angle)' <----- 
          Shapes.Rotate(shp[BNMB][15],angle)' <----- 
        elseIf Key="F" Then              ' <----- 
          Shapes.ShowShape(Ball2)           ' <----- 
          Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][14]),shapes.Gettop(shp[BNMB][14]))' <-----
          Shapes.Move(Ball2,shapes.GetLeft(shp[BNMB][15]),shapes.Gettop(shp[BNMB][15]))' <-----
          shoot2="True"                     ' <----- 
        EndIf                           ' <----- 
      EndIf                                 ' <----- 
       PMXY= text.GetCharacterCode(GraphicsWindow.LastKey)
      If PMXY=76 Or PMXY=82 Then '   Left Arrow : 76  Right Arrow : 82
        dX= (PMXY-79)/3*5        '  <--  (82-76)/2=3  ,82-3=79 , dX=+5 or -5
        dY=0
        Move_index()
      elseIf PMXY=68 Or PMXY=85 Then  '  Up Arrow : 85  Down Arrow : 68
        dY= (76.5-PMXY)/8.5*5         '  <--  (85-68)/2=8.5, 85-8.5=76.5,  dY=+5 or -5
        dx=0
        Move_index()
      endif
    EndSub

    ' ======================Move Sprite on Screen===================================
    Sub move_index
      For ii=1 To 15 ' blue car array number is 15 ' <--------************
        Shapes.Move(shp[BNMB][ii],Shapes.GetLeft(shp[BNMB][ii])+dX,Shapes.Gettop(shp[BNMB][ii])+dY)
      EndFor
    EndSub

    Sub SPRITE_init
      ' 14 Trees
      s[1]="1=0.8;2=.8;3=.8;4=.8;5=.8;6=.8;7=.8;8=.8;9=.8;"
      shX[1]="1=-0;2=100;3=280;4=200;5=644;6=777;7=866;8=966;9=1088;"
      shY[1]="1=200;2=170;3=100;4=140;5=100;6=80;7=70;8=80;9=100;" '
      ' 18 Apples
      s[2] ="1=0.2;2=0.2;3=0.2;4=0.2;5=0.2;6=0.2;7=0.2;8=0.2;9=0.2;10=0.2;" 
      shX[2] ="1=-60;2=60;3=140;4=600;5=700;6=800;7=900;8=1000;9=1080;10=240" 
      shY[2] ="1=360;2=300;3=270;4=240;5=220;6=240;7=220;8=240;9=220;10=240"
      ' House '
      s[3] = "1=0.28"
      shX[3] ="1=522" 
      shY[3] ="1=488"
     ' Ladder
      s[4] ="1=0.6"  '  scale 
      shx[4] ="1= 380" '  initial x -position
      shy[4] ="1= 180"   '  initial y-position
      ' Aircraft 
      s[5] = "1=0.7"
      shX[5]= "1=1188"
      shY[5]= "1=-20"
      shape[5][1] = "func=ell;x=85;y=130;width=35;height=80;angle=30;bc=Gainsboro;pc=darkslategray;pw=2"
      shape[5][2] = "func=ell;x=-200;y=150;width=44;height=160;angle=-15;bc=Gainsboro;pc=darkslategray;pw=2"
      shape[5][3] = "func=ell;x=-200;y=50;width=44;height=160;angle=15;bc=Gainsboro;pc=darkslategray;pw=2" 
      shape[5][4] = "func=ell;x=-140;y=120;width=100;height=60;angle=-10;bc=Gainsboro;pc=darkslategray;pw=2;"
      shape[5][5] = "func=ell;x=-240;y=140;width=150;height=80;angle=0;bc=Gainsboro;pc=darkslategray;pw=2"
      shape[5][6] = "func=line;x=10;y=160;x1=0;y1=0;x2=-170;y2=230;angle=50;pc=Gainsboro;pw=2"
      shape[5][7] = "func=line;x=20;y=255;x1=90;y1=-50;x2=-55;y2=-150;angle=-10;pc=Gainsboro;pw=2"
      shape[5][8] = "func=line;x=-10;y=315;x1=-100;y1=-80;x2=-40;y2=-150;angle=-10;pc=Gainsboro;pw=2"
      shape[5][9] = "func=ell;x=-260;y=150;width=170;height=70;angle=0;bc=Gainsboro;pc=darkslategray;pw=2"
      shape[5][10] = "func=rect;x=70;y=185;width=24;height=14;angle=0;bc=Gainsboro;pc=darkslategray;pw=0"
      shape[5][11] ="func=tri;x1=-240;y1=170;x2=-180;y2=150;x3=-180;y3=190;bc=Gainsboro;pc=darkslategray;pw=2"
      shape[5][12] = "func=ell;x=-177;y=70;width=25;height=25;angle=0;bc=Gainsboro;pc=darkslategray;pw=4;tag=eye"   ' eye 1   ' <<<<>>>>
      shape[5][13] = "func=ell;x=-177;y=270;width=25;height=25;angle=0;bc=Gainsboro;pc=darkslategray;pw=4;tag=eye"   ' eye 2   ' <<<<>>>>
      shape[5][14] = "func=ell;x=-250;y=177;width=44;height=22;angle=0;bc=deeppink;pc=yellow;pw=2;tag=mouth"  '    ' <<<<>>>>
      shape[5][15] = "func=ell;x=-255;y=166;width=22;height=44;angle=0;bc=yellow;pc=deeppink;pw=2;tag=mouth" '   ' <<<<>>>> 
     ' Cannon
      s[6] ="1=0.5"
      shX[6] ="1=0" 
      shY[6] ="1=550"
      shape[6][1] = "func=rect;x=125;y=45;width=20;height=44;bc=red;pw=0;"
      shape[6][2] = "func=rect;x=100;y=45;width=20;height=44;bc=green;pw=0;"
      shape[6][3] = "func=rect;x=150;y=45;width=20;height=44;bc=yellow;pw=0;"
      shape[6][4] = "func=rect;x=175;y=45;width=20;height=66;bc=blue;pw=0;"
      shape[6][5] = "func=rect;x=11;y=0;width=93;height=230;bc=darkslategray=0;"
      shape[6][6] = "func=rect;x=17;y=25;width=81;height=55;bc=white;pw=0;"
      shape[6][7] = "func=rect;x=27;y=35;width=62;height=48;bc=darkslategray;pw=0;"
      shape[6][8] = "func=rect;x=0;y=150;width=330;height=90;bc=darkslategray;pw=0;"
      shape[6][9] = "func=ell;x=0;y=80;width=210;height=140;bc=darkslategray;pw=0;"
      shape[6][10]="func=ell;x=40;y=120;width=33;height=22;angle=-50;bc=snow;pw=0.5" 
      shape[6][11]="func=ell;X=130;Y=120;width=33;height=22;angle=50;bc=mediumslateblue;pw=0.5"
      shape[6][12]="func=rect;X=40;Y=180;width=33;height=22;angle=40;bc=mediumslateblue;pc=darkslategray;pw=0"
      shape[6][13]="func=rect;X=130;Y=180;width=33;height=22;angle=-40;bc=snow;pc=darkslategray;pw=0"
      shape[6][14]="func=rect;X=210;Y=50;width=40;height=100;angle=0;bc=darkslategray;pc=black;pw=2"      '<------ cannon for ball2
      shape[6][15]="func=rect;x=204;y=20;width=50;height=30;angle=0;bc=darkslategray;pc=black;pw=2" '<------ cannon for ball2
      ' Tree 
      s[7]="1=0.8;2=.8;3=.8;4=.8;"
      shX[7]="1=10;2=150;3=920;4=1100"
      shY[7]="1=300;2=300;3=330;4=330" ' 5,6,13,14
      shape[7]=shape[1]
      'Apple
      s[8] ="1=0.2;2=0.2;3=0.2;4=0.2;5=0.2;6=0.2;7=.2;8=.2;" 
      shX[8] ="1=140;2=650;3=-80;4=0;5=100;6=740;7=920;8=1100" 
      shY[8] ="1=444;2=420;3=440;4=420;5=420;6=420;7=480;8=460"

    endsub

    in the above program cannon [6-14]-[6-15] both moved at the same time animate diffrently with thanks

                                                                       mahreen miangul

              
    Sunday, January 7, 2018 2:16 PM
  • You rotate 6-14 and 6-15 over the same angle:

     If Key = "X" Then                   ' <----- 
          angle=angle+1                     ' <----- 
          Shapes.Rotate(shp[BNMB][14],angle)' <----- XXX
          Shapes.Rotate(shp[BNMB][15],angle)' <----- XXX
        ElseIf Key = "Z" Then               ' <----- 
          angle=angle-1                     ' <----- 
          Shapes.Rotate(shp[BNMB][14],angle)' <----- XXX
          Shapes.Rotate(shp[BNMB][15],angle)' <----- XXX


    Jan [ WhTurner ] The Netherlands

    Sunday, January 7, 2018 5:51 PM
    Answerer
  • Timer.Pause()
      For k=1 To Array.GetItemCount(s[6])
        For L=1 To Array.GetItemCount(shape[6])-2      ' '<-----****
          Shapes.Rotate(SHP["6:"+k][L],Shape[6][L]["angle"])
        EndFor
      EndFor
     
      Program.Delay(300)
      For k=1 To Array.GetItemCount(s[6])
        For L=1 To Array.GetItemCount(shape[6])-2      ' '<-----****
          Shapes.Rotate(SHP["6:"+K][L], 0)
         EndFor
      EndFor

    If shoot2="False" Then               
        L1415=(shape[6][14]["height"]+shape[6][15]["height"])/2*s[6][1]  '<-----****
        cx14= Shapes.GetLeft(shp[BNMB][14])+shape[6][14]["width"]/2*s[6][1]'<-----****
        cy14= Shapes.Gettop(shp[BNMB][14])+shape[6][14]["height"]/2*s[6][1]'<-----****
        If Key = "X" Then                   
          angle=angle+1                     
          Shapes.Rotate(shp[BNMB][14],angle)
          X15= L1415*math.Sin(Math.GetRadians(angle))+cx14-shape[6][15]["width"]/2*s[6][1]'<-----****
          y15= -L1415*math.cos(Math.GetRadians(angle))+cy14-shape[6][15]["height"]/2*s[6][1]'<-----****
          Shapes.Move(shp[BNMB][15],x15,y15)'<-----****
          Shapes.Rotate(shp[BNMB][15],angle)
        ElseIf Key = "Z" Then             
          angle=angle-1                   
          Shapes.Rotate(shp[BNMB][14],angle)
          X15= L1415*math.Sin(Math.GetRadians(angle))+cx14-shape[6][15]["width"]/2*s[6][1]'<-----****
          y15= -L1415*math.cos(Math.GetRadians(angle))+cy14-shape[6][15]["height"]/2*s[6][1]'<-----****
          Shapes.Move(shp[BNMB][15],x15,y15)'<-----****
          Shapes.Rotate(shp[BNMB][15],angle)

    Monday, January 8, 2018 6:36 AM
    Answerer
  • hello please mark the lines in my program and your edit program with the same latters 123etc  mahreen miangul
    Monday, January 8, 2018 10:03 AM
  •                                                CCH992                                 mahreen miangul
    Monday, January 8, 2018 1:21 PM
  • QMF747  how should i (1) animate and move each plane indipendly or should (2) when one plane is hit the next one apears and so on.for that the cannon should fire bullets rapidly thankyou                        mahreen miangul

                                                                                                                                                             

    Tuesday, January 9, 2018 1:34 PM
  • If you want the 4 planes move independently you should give each one its own ddx and ddy (e.g. in an array)

    You have to define four sets of four keys to move them (e.g  QWER  UIOP  ASDF and HJKL) Use keys on the lowest row of the keyboard for the cannons. In the move loop, loop over the 4 planes.

    Perhaps it is better to remove all unused parts of the program (trees apples house ladder, the blinking of stars) . The program is then easier to debug.

    I found an error in the aircraft shapes: shY[5] has at the end "20=20". This should be "4=20"


    Jan [ WhTurner ] The Netherlands

    Tuesday, January 9, 2018 3:47 PM
    Answerer
  • hello in program QMF747  i have removed all unused parts (trees apples house ladder, the blinking of  stars) if any others are to be removed please help is needed                                                                  mahreen miangul
    Tuesday, January 9, 2018 4:46 PM
  • hello in program QMF747  i have removed all unused parts (trees apples house ladder, the blinking of  stars) if any others are to be removed please help is needed                                                                  mahreen miangul

    Is it easier for the four aircraft to shoot automatically, respectively?

    Like NTG546  (challenge of the month January 2018) 

    Wednesday, January 10, 2018 7:21 AM
    Answerer
  • in QMF747 if one plane is shot like NTG546 then it will become clear how to shoot the second or all the four i hope the bomb drop will also become clear but the problem is that in QMF747 shape is drawn while in NTG546 maths objects or image from png is used                                                   mahreen miangul
    ps: the problem is that i want to use selfdrawn shapes not (image from png) or object----------thankyou
    Wednesday, January 10, 2018 11:35 AM
  • in QMF747 if one plane is shot like NTG546 then it will become clear how to shoot the second or all the four i hope the bomb drop will also become clear but the problem is that in QMF747 shape is drawn while in NTG546 maths objects or image from png is used                                                   mahreen miangul
    ps: the problem is that i want to use selfdrawn shapes not (image from png) or object----------thankyou

    of course use shapes aircraft. "shoot automatically" means like this. QMF747-0 

    * program is not completed yet.

    • Edited by NaochanONEditor Thursday, January 11, 2018 12:08 AM add comment
    Thursday, January 11, 2018 12:00 AM
    Answerer
  • waiting for the complete version             with thanks                 mahreen miangul
    Thursday, January 11, 2018 11:41 AM
  • LRZ089 my porpose is to replace the player at the bottom with my cannon and the sprites with my aircraft the bullets should fire from the connon and not from player at the bottom and the upper bullets should come from all the aircrafts randomly i hope its possible                                    mahreen miangul
    Thursday, January 11, 2018 12:08 PM
  •  Completed     QMF747-1 
    Saturday, January 13, 2018 4:03 AM
    Answerer
  •                                      A very good one will ask for more now i have started code programming
                                   with thanks                                                                                                mahreen miangul                                                                                                   
    Saturday, January 13, 2018 4:41 AM
  • Heart by mahreen miangul help from Nonkis SWQ275 
    Sunday, January 21, 2018 1:50 PM