Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - gumby

Pages: [1] 2 3 ... 7
1
SCI Syntax Help / Drop inventory item (SCI 1.1)
« on: March 23, 2017, 08:27:21 PM »
I have chosen an item from my inventory and I want to drop it in a room.  The item is selected from inventory and the mouse cursor is changed to represent the item the ego is holding. 

Here's what I have in the doVerb method (conditional logic removed for clarity):
Code: [Select]
   (gEgo put: INV_LEAFLET)   ;Remove item from inventory
   (leaflet show:)                     ;Display the prop in the room

What I can't seem to figure out is how to get the mouse cursor (a leaflet) to change back to say the look or walk icon & have the verb change as well.  I can set the cursor manually:

Code: [Select]
   (gGame setCursor: 996 1)

But that doesn't change the verb, and I'm sure this isn't the right way to be doing this. What am I missing here?

2
SCI Community How To's & Tutorials / SCI0 - Graph fill box and Dithering
« on: November 27, 2016, 10:58:59 AM »
The Graph() kernel method doesn't support using a dithered color.  So to overcome this I wrote this procedure:

Code: [Select]
(procedure (GraphDither y1 x1 y2 x2 clColor1 clColor2)
   (var xI, xII, yI, yII, yOdd)
   
          Graph(grFILL_BOX y1 x1 y2 x2 VISUAL clColor1)
     
          = yOdd 0
  (if (<> (% (- y2 y1) 2) 0)
    = yOdd 1
  )
 
  = xI x1
  = yI (- y2 2)
  = xII (- (+ x1 2) 1)
  = yII (- y2 1)
 
          (if (yOdd)
     = yI (- y2 1)
     = xII x1  
  )

  (while (1)
             (if ((>= xII x2))
                = xII (- x2 1)
                = yII (- yII 1)
      )
     
      Graph(grDRAW_LINE yI xI yII xII clColor2)
     
      (if (<= (+ xII 2) x2)
    = xII (+ xII 2)
      )(else
  = yII (- yII 2)
      )
 
      (if (>= (- yI 2) y1)
    = yI (- yI 2)
      )(else
      = xI (+ xI 2)        
      )

      (if (>= xI x2)
   break
      )
  )
)

The procedure starts by drawing a box with the first specified color, then draws parallel lines (slope = 1) which colors every other pixel in the box with the 2nd dither color.

3
I had a need to input multiple values from the user and the template game out-of-the-box only supports a single edit control in the Print routine.  Here's how you can enable multiple edit boxes in a single print statement, perhaps for that RPG you always wanted to make. 

Note that this example uses the SCI Studio syntax, not the Sierra syntax.

Make a new procedure called PrintMultiEdit() based on the Print() procedure in Controls.sc.  You could just override the existing Print() procedure, but you'll need to make other changes everywhere an #edit is used in existing Print statements in the template code (shouldn't be too hard, but left out here for brevity).

Code: [Select]
(procedure public (PrintMultiEdit params)
(var hDialog, hDText, hIcon, hEdits[10], btnPressed, paramCnt, diagX, diagY,
maxWidth, newPrintDlg, hFirstEnabled, oldPort, hButtons[6], btnsWidth,
buttonCnt, btnX, msgBuf[1013], moveToX, moveToY, editCnt, leftMargin[10],fontHeight)
= diagY  -1
= diagX  -1
= buttonCnt 0
= editCnt 0
= hEdits  NULL
= hIcon  NULL
= btnsWidth 0
= maxWidth  0
= newPrintDlg  NULL
= hDialog (Dialog:new())
(send hDialog:
window(gTheWindow)
name("PrintD")
)
= hDText (DText:new())
(if(<u params[0] 1000)
GetFarText(params[0] params[1] @msgBuf)
= paramCnt 2
)(else
  (if(params[0])
  StrCpy(@msgBuf params[0])
  = paramCnt 1
)(else
= msgBuf 0
= paramCnt  0
)
)
(send hDText:
text(@msgBuf)
moveTo(4 4)
font(gDefaultFont)
setSize()
)

(send hDialog:add(hDText))


  (while(< paramCnt paramTotal)
  (switch(params[paramCnt])
  (case #mode
  ++paramCnt
  (send hDText:mode(params[paramCnt]))
)
(case #font
  ++paramCnt
  (send hDText:
  font(params[paramCnt])
  setSize(maxWidth)
  )
)
(case #width
= maxWidth params[++paramCnt]
(send hDText:setSize(maxWidth))
)
(case #time
++paramCnt
(send hDialog:time(params[paramCnt]))
)
(case #title
++paramCnt
(send hDialog:text(params[paramCnt]))
)
(case #at
= diagX params[++paramCnt]
= diagY params[++paramCnt]
)
(case #draw
Animate(
(send gCast:elements)
0
)
)
(case #edit
++paramCnt
= hEdits[editCnt] (DEdit:new())

(send hEdits[editCnt]:
text(params[paramCnt])
)

++paramCnt
(send hEdits[editCnt]:
max(params[paramCnt])
setSize()
)

= leftMargin[editCnt] params[++paramCnt]

// if this is the first edit control, get the required font height value
(if (== 0 editCnt)
  = fontHeight params[++paramCnt]
)

++editCnt
)

(case #button
    = hButtons[buttonCnt] (DButton:new())
(send hButtons[buttonCnt]:
text(params[++paramCnt])
value(params[++paramCnt])
setSize()
    )
    = btnsWidth (+ btnsWidth (+ (send hButtons[buttonCnt]:nsRight) 4))
    ++buttonCnt
)

(case #icon
(if(IsObject(params[+ paramCnt 1]))
= hIcon (send params[+ paramCnt 1]:new())
(send hIcon:setSize())
= paramCnt (+ paramCnt 1)
    )(else
    = hIcon (DIcon:new())
    (send hIcon:
    view(params[+ paramCnt 1])
    loop(params[+ paramCnt 2])
    cel(params[+ paramCnt 3])
    setSize()
    )
    = paramCnt (+ paramCnt 3)
    )
)
(case #dispose
(if(gPrintDlg)
(send gPrintDlg:dispose())
)
= newPrintDlg hDialog
)
(case #window
++paramCnt
(send hDialog:window(params[paramCnt]))
)
)
++paramCnt
)
(if(hIcon)
(send hIcon:moveTo(4 4))
(send hDText:moveTo( (+ 4 (send hIcon:nsRight)) (send hIcon:nsTop) ))
(send hDialog:add(hIcon))
)
  (send hDialog:setSize())
 
= paramCnt 0
(while(< paramCnt editCnt)
    (send hEdits[paramCnt]:moveTo(
    (+ leftMargin[paramCnt] (send hDText:nsLeft))
    (+ (- (send hDText:nsBottom) (* fontHeight editCnt)) (* fontHeight (paramCnt)))
    ))
    (send hDialog:
    add(hEdits[paramCnt])
    setSize()
    )
   
++paramCnt
)


  (if(> btnsWidth (send hDialog:nsRight))
= btnX 4
)(else
  = btnX (- (send hDialog:nsRight) btnsWidth)
        //If you wanted the button centered...
        //   = btnX / ( - (send hDialog:nsRight) btnsWidth ) 2
)

= paramCnt 0
(while(< paramCnt buttonCnt)
(send hButtons[paramCnt]:moveTo( btnX (send hDialog:nsBottom) ))
(send hDialog:add(hButtons[paramCnt]))
= btnX (+ 4 (send hButtons[paramCnt]:nsRight))
++paramCnt
)

  (send hDialog:
  setSize()
  center()
  )
  (if(hIcon and not StrLen(@msgBuf))
(send hIcon:
moveTo(
    (
    / (- (- (send hDialog:nsRight) (send hDialog:nsLeft))
    (- (send hIcon:nsRight) (send hIcon:nsLeft))) 2
    )
    4
    )
)
)

(if(== -1 diagX)
= moveToX (send hDialog:nsLeft)
)(else
= moveToX diagX
)
(if(== -1 diagY)
= moveToY (send hDialog:nsTop)
)(else
= moveToY diagY
)
  (send hDialog:moveTo( moveToX moveToY ))

= oldPort GetPort()

(if(send hDialog:text)
= moveToX nwTITLE
)(else
= moveToX nwNORMAL
)
(if(newPrintDlg)
= moveToY 15
)(else
= moveToY -1
)
(send hDialog:open(moveToX moveToY))

(if(newPrintDlg)
= gOldPort GetPort()
SetPort(oldPort)
return(= gPrintDlg newPrintDlg)
)
  (if( (= hFirstEnabled (send hDialog:firstTrue(#checkState 1)))
       and (not (send hDialog:firstTrue(#checkState 2)) ) )
    (send hFirstEnabled:state(| (send hFirstEnabled:state) 2))
)
  = btnPressed (send hDialog:doit(hFirstEnabled))
  (if(== btnPressed -1)
= btnPressed 0
)

  (for (= paramCnt 0) (< paramCnt buttonCnt) (++paramCnt)
  (if(== btnPressed hButtons[paramCnt])
    = btnPressed (send btnPressed:value)
    break
)
)
  (if(not (send hDialog:theItem) )
= btnPressed 1
)
  (send hDialog:dispose())

return(btnPressed)
)

Basically, I used the existing button code and applied it to edit controls.  Let's take it for spin:

In your room:
Code: [Select]
(instance RoomScript of Script
(properties)
(method (handleEvent pEvent)
        (var inp1[5], inp2[5], inp3[5], inp4[5], inp5[5], inp6[5], inp7[5], inp8[5], inp9[5], inp10[5], attributes[100])
        (super:handleEvent(pEvent))

            // you must initialize these or you will get garbage in your print
            = inp1 0
    = inp2 0
    = inp3 0
    = inp4 0
    = inp5 0
    = inp6 0
    = inp7 0
            = inp8 0
            = inp9 0
            = inp10 0
                   
            PrintMultiEdit("Input character attributes:\nStrength:\nConstitution:\nWisdom:\nDexterity:\nIntelligence:\nCharisma:\nSocial Standing:\nMagic Resistance:\nLuck:\nHealth:"
       #edit @inp1 3 100 12
       #edit @inp2 3 100
       #edit @inp3 3 100
       #edit @inp4 3 100
       #edit @inp5 3 100
       #edit @inp6 3 100
       #edit @inp7 3 100
       #edit @inp8 3 100
       #edit @inp9 3 100
       #edit @inp10 3 100
       #button "  OK  " 0
)
          )
)
 

Ok, let's go through this. 

First, the text to be displayed in the dialog.  For each edit control, we are going to be putting labels to the left of the edit controls.  The approach I took was to embed these into the normal text displayed when Print() is called, each edit control label separated by newlines.

Next, examine the new attributes for #edit.  There are two, the first (set to 100 for all edit controls in this example) is the left margin/padding for the edit control.  This is used to bump the edit controls to the right so that the edit labels don't get clobbered.  The 2nd, which only appears on the 1st #edit is the font height.  We only need this once because we aren't going to have mixed fonts within a single Print() call.  This value represents the vertical spacing we will use for spacing the edit controls apart.

Here's the result:



Let's show off the left margin attributes a bit and put in default values of zero:
Code: [Select]
(instance RoomScript of Script
(properties)
(method (handleEvent pEvent)
        (var inp1[5], inp2[5], inp3[5], inp4[5], inp5[5], inp6[5], inp7[5], inp8[5], inp9[5], inp10[5], attributes[100])
        (super:handleEvent(pEvent))

            // you must initialize these or you will get garbage in your print
            StrCpy(@inp1 "0")
    StrCpy(@inp2 "0")
    StrCpy(@inp3 "0")
    StrCpy(@inp4 "0")
    StrCpy(@inp5 "0")
    StrCpy(@inp6 "0")
    StrCpy(@inp7 "0")
            StrCpy(@inp8 "0")
            StrCpy(@inp9 "0")
            StrCpy(@inp10 "0")
                   
            PrintMultiEdit("Input character attributes:\nStrength:\nConstitution:\nWisdom:\nDexterity:\nIntelligence:\nCharisma:\nSocial Standing:\nMagic Resistance:\nLuck:\nHealth:"
       #edit @inp1 3 50 12
       #edit @inp2 3 73
       #edit @inp3 3 48
       #edit @inp4 3 54
       #edit @inp5 3 67
       #edit @inp6 3 56
       #edit @inp7 3 87
       #edit @inp8 3 94
       #edit @inp9 3 31
       #edit @inp10 3 40
       #button "  OK  " 0
)
          )
)



Just for fun, let's put in some default randomized attribute values:

Code: [Select]
(instance RoomScript of Script
(properties)
(method (handleEvent pEvent)
        (var inp1[5], inp2[5], inp3[5], inp4[5], inp5[5], inp6[5], inp7[5], inp8[5], inp9[5], inp10[5], attributes[100])
        (super:handleEvent(pEvent))

            // you must initialize these or you will get garbage in your print
    Format(@inp1 "%d" Random(0 20))  
            Format(@inp2 "%d" Random(0 20))
            Format(@inp3 "%d" Random(0 20))
            Format(@inp4 "%d" Random(0 20))
            Format(@inp5 "%d" Random(0 20))
            Format(@inp6 "%d" Random(0 20))
            Format(@inp7 "%d" Random(0 20))
            Format(@inp8 "%d" Random(0 20))
            Format(@inp9 "%d" Random(0 20))
            Format(@inp10 "%d" Random(0 20))
                   
            PrintMultiEdit("Input character attributes:\nStrength:\nConstitution:\nWisdom:\nDexterity:\nIntelligence:\nCharisma:\nSocial Standing:\nMagic Resistance:\nLuck:\nHealth:"
       #edit @inp1 3 50 12
       #edit @inp2 3 73
       #edit @inp3 3 48
       #edit @inp4 3 54
       #edit @inp5 3 67
       #edit @inp6 3 56
       #edit @inp7 3 87
       #edit @inp8 3 94
       #edit @inp9 3 31
       #edit @inp10 3 40
       #button "  OK  " 0
)
          )
)



I would be remiss if I didn't show that we can get these values out of our print statement - they are stored in the same input values.  This screenshot below doesn't show it, but if you change the values when in the Print() dialog, they will be reflected in the final output.

Code: [Select]
(instance RoomScript of Script
(properties)
(method (handleEvent pEvent)
        (var inp1[5], inp2[5], inp3[5], inp4[5], inp5[5], inp6[5], inp7[5], inp8[5], inp9[5], inp10[5], attributes[100])
        (super:handleEvent(pEvent))

            // you must initialize these or you will get garbage in your print
    Format(@inp1 "%d" Random(0 20))  
            Format(@inp2 "%d" Random(0 20))
            Format(@inp3 "%d" Random(0 20))
            Format(@inp4 "%d" Random(0 20))
            Format(@inp5 "%d" Random(0 20))
            Format(@inp6 "%d" Random(0 20))
            Format(@inp7 "%d" Random(0 20))
            Format(@inp8 "%d" Random(0 20))
            Format(@inp9 "%d" Random(0 20))
            Format(@inp10 "%d" Random(0 20))
                   
            PrintMultiEdit("Input character attributes:\nStrength:\nConstitution:\nWisdom:\nDexterity:\nIntelligence:\nCharisma:\nSocial Standing:\nMagic Resistance:\nLuck:\nHealth:"
       #edit @inp1 3 50 12
       #edit @inp2 3 73
       #edit @inp3 3 48
       #edit @inp4 3 54
       #edit @inp5 3 67
       #edit @inp6 3 56
       #edit @inp7 3 87
       #edit @inp8 3 94
       #edit @inp9 3 31
       #edit @inp10 3 40
       #button "  OK  " 0
)

           StrCpy(@attributes "Character attributes are:")
           StrCat(@attributes " \nStrength:")
           StrCat(@attributes @inp1)
           StrCat(@attributes " \nConstitution:")
           StrCat(@attributes @inp2)
           StrCat(@attributes " \nWisdom:")
           StrCat(@attributes @inp3)
           StrCat(@attributes " \nDexterity:")
           StrCat(@attributes @inp4)
           StrCat(@attributes " \nIntelligence:")
           StrCat(@attributes @inp5)
           StrCat(@attributes " \nCharisma:")
           StrCat(@attributes @inp6)
           StrCat(@attributes " \nSocial Standing:")
           StrCat(@attributes @inp7)        
           StrCat(@attributes " \nMagic Resistance:")
           StrCat(@attributes @inp8)    
           StrCat(@attributes " \nLuck:")
           StrCat(@attributes @inp9)    
           StrCat(@attributes " \nHeath:")
           StrCat(@attributes @inp10)        

   
   Print(@attributes)
          )
)

And the final output:


One gotcha that I ran into is sometimes the formatting/spacing of a Print() call gets messed up.  One scenario is when the header text (e.g 'Input character attributes') is shorter than the edit control label + edit control.  If you run into an issue where the edit boxes are shifted up in the dialog, add leading/trailing whitespace to the text string in the Print() call to compensate.

One last thing.  The current implementation only supports up to 10 edit controls on a single print.  There really isn't more room on the screen for that, unless additional changes are made to support two columns or possibly three columns of edit controls.

4
SCI Development Tools / Scene Builder
« on: October 22, 2016, 11:35:16 AM »
Here's a project I've been working on and off for the past 3 years or so.  My original intent was build a 'view library'; a collection of views to be utilized in game development.  Now it has morphed into a dynamic scene builder, where every new room the ego visits is built on the fly with views.  I created all the views from PIC resources from the KQ1 remake and I intend to continue to build up the collection from other SCI games.

From a tool perspective, it's still in it's infancy.  Right now all it does is select 15 random views and drops them into the room with some positional help (e.g. a view that was originally clipped on the left side of the room will still be placed on the left side of the room).   I need to create menu options that will allow the developer to select characteristics of what a room should consist of (outside 'sunny', outside 'swamp', inside 'cave', inside 'building', etc), background options and/or color schemes.  After a room is created, the developer will be able save off a room script generated from the rendered scene so it is reproducible in their own game.  Being able to drag a view around the screen for re-placement would be a nice feature as well.

I've attached a few screenshots of some of the better results - the hit ratio of 'good' rooms to 'bad' rooms is about 1 to 5 right now, mostly because of conflicting view types (a bed placed in a forest or stalactites placed in a meadow for example).

5
Everything-Else / Hiatus
« on: October 20, 2014, 07:56:22 PM »
In addition to my recent appendicitis surgery, as of this past Saturday our family is moving.  Been putting stuff in storage, cleaning, etc. for the past 2 months.  Listed our current house on Friday & we got an offer on Saturday, turned around and lined up a new house & got it under contract on the same day.

I already have not been around much lately and I suspect my activity here won't increase until near the end of the year :(

6
SCI Syntax Help / Problems with 'break' command
« on: September 07, 2014, 11:31:02 AM »
Found another issue, this time effecting both Studio and Companion.  Apparently, neither will allow the use of a break statement in a do/while loop at compile time.  Note that in just a normal while loop, the break command works just fine:

Code: [Select]
   // this works
   (while(== 1 1)
       Print("While loop")
       break
   )

   // this does not
   (do
       Print("Do/While loop")
       break
   )while(== 1 1)
 

7
SCI Syntax Help / Big arrays in Companion
« on: September 04, 2014, 06:12:10 PM »
I ran into this today.  For some reason, the template game is dumping on me when I try to use an array that I've defined with an index over (about) 2000.

Here's my code
Code: [Select]
(local
   roomMap[2460]
)

-- then in the init of my room:
(for (= i 0) (< i 2460) (++i)
     = roomMap[i] 1
)


If I change my loop to only iterate say 2000 times, it's fine.  I tested this out in Studio and it seemed to work fine (no crashing) so it seems to only be impacting Companion.

EDIT:  I can change the loop to go up to 2024 before the game starts corrupting.  Starting at 2025, the top menu gets corrupted.

8
The Games and other Sierra Adventure stuff / View library
« on: August 08, 2014, 07:56:03 PM »
Cloudee's new port of Voodoo Girl to SCI game reminded me of this.  I've been thinking how nice it would be to have a massive library of views (non-animated) that could be used to shortcut some of the process of drawing pics without having to draw everything from scratch.  And now that I think about it, it wouldn't be all that hard.  We could cut/paste parts of existing pics from games and start from there.

Heap wouldn't be an issue because we can use the 'dropped view' approach when implementing the views onto a pic.

Any thoughts?

9
For some reason I'm not getting email notifications of new PMs.

10
Just stumbled upon a commit to GitHub dated about 3 months ago.  I downloaded 1.7 and sure enough, it looks like it detects our games (recent ones too, Betrayed Alliance is detected just fine), and there is support for sciAudio as well.

I cranked up LockerGnome Quest Redux and the audio seems to work great.  I did notice however that 'right-click' looking doesn't seem to work (though this might be some sort of configuration option that needs to be set in ScummVM)

11
SCI Development Tools / Ototo - Creating MIDI music
« on: February 22, 2014, 09:29:01 AM »
Found this very interesting over at Kickstarter:

https://www.kickstarter.com/projects/905018498/ototo-make-music-from-anything

From what I can tell, this seems like this would be a great way to create original MIDI music for our games, without having to be classically trained.  I've seen similar devices before, but the variety of input sensors really grabbed me.

The project is already fully funded, and delivery is scheduled for this June.  I'm thinking about funding it; at a minimum it would be fun to with my kids to tinker with.



12
Here's a tip to save a lot of space in your scripts if you use a lot of #titles in your Print() statements.  Create a procedure like this in your Main.sc:

Code: [Select]
(procedure (PrintWithTitle textRes textResIndex titleTextRes titleTextResIndex params)
   Print(textRes textResIndex #title Format("%s" titleTextRes titleTextResIndex) rest params)
)

Then in your scripts, just use the new PrintWithTitle function like this:
Code: [Select]
  PrintWithTitle(0 20 999 3)   // 999 is a text resource where your #titles are held
  
  // you can also use additional Print params and they will be passed through:
  PrintWithTitle(0 20 999 3 #width 200 #at 25 80)

This way you can pull all the actual text for your titles out of your room scripts, saving heap space.

This technique should work for any #attribute (#text, #button, etc) where you want to move the literal text out of the script & into a text resource.

EDIT:  Stop.  Don't do it in the above way.  It'll work, but lets address the root cause of the issue & fix the Print() routine in the template game:

Another edit:  This doesn't work properly, it seemed to in my initial testing.  I'm going to have to do some more debugging to figure out what is going on

In controls.sc, in the Print() procedure change the '(case #button' section:
Code: [Select]
(case #button
    = hButtons[buttonCnt] (DButton:new())
   
(if(>= Abs(params[+ paramCnt 1]) 0 and <= Abs(params[+ paramCnt 1]) 999)
(send hButtons[buttonCnt]:
text(Format("%s" params[+ paramCnt 1] params[+ paramCnt 2]))
value(params[+ paramCnt 3])
setSize()
    )
= paramCnt + paramCnt 3
)(else
(send hButtons[buttonCnt]:
text(params[++paramCnt])
value(params[++paramCnt])
setSize()
    )
)    
    = btnsWidth (+ btnsWidth (+ (send hButtons[buttonCnt]:nsRight) 4))
    ++buttonCnt
)

And the '(case #title' section:
Code: [Select]
(case #title
++paramCnt

(if(>= Abs(params[paramCnt]) 0 and <= Abs(params[paramCnt]) 999)
(send hDialog:text(Format("%s" params[paramCnt] params[+ paramCnt 1])))
++paramCnt
)(else
(send hDialog:text(params[paramCnt]))
      )
)

Now, you can use either technique - specify a static string or a text resource like this:
Code: [Select]
   Print("Hello there" #title 999 1)    //  999 is the text resource holding our title text
   Print("Hello there" #title "Greetings")   // the original way of specifying a title still works too

Same with buttons:
Code: [Select]
   Print("Make a selection" #button 888 2)   // 888 is the text resource holding our button text
   Print("Make a selection" #button "OK")    // the original way of specifying text for buttons still works

Of course, if you are this heap-bound, you'd have the actual text of your Print statement to be in a text resource too, so a more realistic example would be something like this:
Code: [Select]
  Print(0 15 #title 999 1)
  Print(0 22 #button 888 2)

13
SCI Community How To's & Tutorials / PIC drawing tips
« on: September 07, 2013, 09:46:40 PM »
Starting this thread to help document tips to help developers draw top-notch picture resources.  

While attempting to draw tree foliage, I was tempted to simply use a combination of fill areas consisting of lime, green & a green/black dither.  This did a pretty good job, but it lacked a level of authenticity, it just seemed too regular.  In Companion there is a option in the 'pen style' to select a random pattern, essentially a 'spray paint' tool.  Selecting a random pattern with a large pen size & applying it judiciously over the filled areas generated a very pleasing effect.

Also works great for creating 'bunches' of flowers on the ground or creating grassy areas.

14
Community Competitions / KQ2 SCI Remake - Mini competition
« on: August 17, 2013, 04:24:44 PM »
I'd like to propose a new mini-comp with the purpose of collaborating on MusicallyInspired's KQ2 remake.  Easy, short (i.e. completeable) and very accessible for people to contribute.

So here's my idea:  Let's hold a mini-comp for completing room pics (visual screens only, no priority or control screens).  Each competitor will choose a different room screen to complete, and all competition entries will be used in the game, everyone wins!

We'll vote on which screens deserve 1st, 2nd or 3rd place - same as a normal comp.  Again, I wish to emphasize that every submission will be used in the game providing it meets the requirements (see below).  After the competition is complete, I'll update the game with the new room screens & I'll request to have the KQ2 on the Design Desktop (http://sciprogramming.com/desktop.php) to be updated so we can all see the results in-game!

The only requirement is to stay true to the original project, which was to re-create KQ2 using the same style as the KQ1 SCI remake created by Sierra.  Additionally, please read MusicallyInspired's development thread for this project (http://sciprogramming.com/community/index.php/topic,28.0.html) to get some insight as to how he envisioned this game turning out.

If you are interested in competing, just indicate which currently unfinished room you'd like work on & I'll extract the room resource from the game & provide it as a starting point.  I'd like to hold off until we have several committed competitors before actually kicking this off; maybe beginning Sept 1st, with a deadline for submissions by Sept 30th.

Please post here if you are interested in participating.

15
SCI Syntax Help / Move actor off-screen?
« on: August 07, 2013, 06:57:07 PM »
I'm trying to move an actor offscreen: just have the actor move 'down' the Y axis (y = 1000).

Code: [Select]
   (myActor:setMotion(MoveTo 90 1000))

...but when the bottom of the view hits the edge of the screen, the view stops.  Is there some property that I missed specifying for the actor or something?

Pages: [1] 2 3 ... 7

SMF 2.0.11 | SMF © 2015, Simple Machines
Simple Audio Video Embedder

Page created in 0.137 seconds with 17 queries.