Multiple Instances Question

Just starting out? Need help? Post your questions and find answers here.
Cyber Spider
Posts: 8
Joined: Fri Jun 02, 2023 10:53 am

Multiple Instances Question

Post 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
Last edited by Cyber Spider on Sun Jun 04, 2023 6:51 pm, edited 1 time in total.
User avatar
Peter
Posts: 1086
Joined: Mon Feb 24, 2014 10:17 pm
Location: 127.0.0.1:9080
Contact:

Re: Multiple Instances Question

Post 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)
Cyber Spider
Posts: 8
Joined: Fri Jun 02, 2023 10:53 am

Re: Multiple Instances Question

Post 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
Post Reply