Page 1 of 1

Multiple Instances Question

Posted: Fri Jun 02, 2023 6:54 pm
by Cyber Spider
I am currently developing an idle game in SpiderBasic and have a question.

given the following code:

Code: Select all

DeclareModule Currency
  ; procedures
  Declare create(x, y)
EndDeclareModule

Module Currency
  ; canvas to draw on
  Global gadget

  ; create the currency
  Procedure create(x, y)
    gadget = TextGadget(#PB_Any, x, y, 100, 100, "Stars: 0")
  EndProcedure
EndModule
and it is used as follows:

Code: Select all

oldcurr = Currency::create(50, 50)
;newcurr = Currency::create(100, 100)
How can I module it, so I can create multiple instances of currency using one module? If I uncomment the line

Code: Select all

newcurrent =  Currency::create(100, 100)
line the app crashes when run.

Thank you for your time,

Cyber Spider

Re: Multiple Instances Question

Posted: Fri Jun 02, 2023 8:01 pm
by Peter
no 'crash' here

Code: Select all

DeclareModule Currency
  ; procedures
  Declare create(x, y)
EndDeclareModule

Module Currency
  ; canvas to draw on
  Global gadget
  
  ; create the currency
  Procedure create(x, y)
    gadget = TextGadget(#PB_Any, x, y, 100, 100, "Stars: 0")
  EndProcedure
  
EndModule

OpenWindow(0, 0, 0, 300, 300, "Stars")

oldcurr = Currency::create(50, 50)

newcurr = Currency::create(100, 100)

Re: Multiple Instances Question

Posted: Fri Jun 02, 2023 8:53 pm
by Cyber Spider
Peter wrote: Fri Jun 02, 2023 8:01 pm no 'crash' here

Code: Select all

DeclareModule Currency
  ; procedures
  Declare create(x, y)
EndDeclareModule

Module Currency
  ; canvas to draw on
  Global gadget
  
  ; create the currency
  Procedure create(x, y)
    gadget = TextGadget(#PB_Any, x, y, 100, 100, "Stars: 0")
  EndProcedure
  
EndModule

OpenWindow(0, 0, 0, 300, 300, "Stars")

oldcurr = Currency::create(50, 50)

newcurr = Currency::create(100, 100)
Strange, restarting the app fixed itself.

sincerely,

Cyber Spider