you'll have to cuss backwards.
yeah, ok. I imagine having 4 x components would be the simplest method anyway. I suppose you'll be wanting 4 x graphics too?
tihs!
Printable View
you'll have to cuss backwards.
yeah, ok. I imagine having 4 x components would be the simplest method anyway. I suppose you'll be wanting 4 x graphics too?
tihs!
If we're going along with the method outlined above(which I think we'll have to) then we'll be moving back to the previously discussed method of granting each components individual benefits when they use different metal types.
Better in the long run I think.
Example would be...
Ammo, Metal Used, Range, Weight, Damage
30mm, standard, 150, 0.6, 40
30mm, light, 200, 0.4, 30
30mm, strong, 120, 0.8, 50
30mm, s/l, 180, 0.5, 45
More flexible as you can see, but it means the other componets would not provide armour benefits. These would have to be taken into account in the armour components section....
Armour, metal used, weight, armour value
6cm Ablative, standard, 4, 100
6cm Ablative, light, 3.2, 75
6cm Ablative, strong, 4.5, 130
6cm Ablative, s/l, 3.75, 120
Comments / questions?
4 * graphics would be nice, they'd only have to be different colours to reflect the metals used
standard - gunmetal grey
light - silvery
strong - darker grey
s/l - metallic black (or copper or something)
your call....
Code:
Function CanPlayerAffordIt(cp As Byte, basemetal As Single, _
energy As Single, diamond As Single, fissionable As Single, fossil As Single, gems As Single, _
stdalloy As Single, lightalloy As Single, stralloy As Single, slalloy As Single, plastic As Single, _
precious As Single, propellant As Single) As String
Dim temp As String
'Trap errors and restore resolution
'Trap error when initialising sound
'Fix SOOR on zoom problem
temp = ""
If player(cp).energy < 0 Then temp = temp & "energy, "
If player(cp).StdRes.basemetal - basemetal < 0 Then temp = "base metals, "
If player(cp).StdRes.diamond - diamond < 0 Then temp = temp & "diamond, "
If player(cp).StdRes.fissionable - fissionable < 0 Then temp = temp & "fissionable materials, "
If player(cp).StdRes.fossil - fossil < 0 Then temp = temp & "fossil fuels, "
If player(cp).StdRes.gems - gems < 0 Then temp = temp & "gems, "
If player(cp).StdRes.precious - precious < 0 Then temp = temp & "precious metals, "
If player(cp).advres.standardalloy - stdalloy < 0 Then temp = temp & "standard alloys, "
If player(cp).advres.strongalloy - stralloy < 0 Then temp = temp & "strong alloys, "
If player(cp).advres.lightalloy - lightalloy < 0 Then temp = temp & "light alloys. "
If player(cp).advres.SLA - slalloy < 0 Then temp = temp & "strong/light alloys, "
If player(cp).advres.propellant - propellant < 0 Then temp = temp & "propellants, "
If player(cp).advres.plastic - plastic < 0 Then temp = temp & "plastic, "
If temp = "" Then
temp = "Y"
Else
temp = Mid$(temp, 0, Len(temp) - 2)
End If
End Function
Sub BillPlayer(cp As Byte, basemetal As Single, _
energy As Single, diamond As Single, fissionable As Single, fossil As Single, gems As Single, _
stdalloy As Single, lightalloy As Single, stralloy As Single, slalloy As Single, plastic As Single, _
precious As Single, propellant As Single) As String
player(cp).energy = player(cp).energy - energy
player(cp).StdRes.BaseMetals = player(cp).StdRes.BaseMetals - basemetal
player(cp).StdRes.diamond = player(cp).StdRes.diamons - diamond
player(cp).StdRes.Fissionables = player(cp).StdRes.Fissionables - fissionable
player(cp).StdRes.fossil = player(cp).StdRes.fossil - fossil
player(cp).StdRes.gems = player(cp).StdRes.gems - gems
player(cp).StdRes.precious = player(cp).StdRes.precious - precious
player(cp).advres.StdAlloys = player(cp).advres.StdAlloys - stdalloy
player(cp).advres.StrongAlloys = player(cp).advres.StrongAlloys - stralloy
player(cp).advres.LightAlloys = player(cp).advres.LightAlloys - lightalloy
player(cp).advres.SLAlloys = player(cp).advres.SLAlloys - slalloy
player(cp).advres.Propellants = player(cp).advres.Propellants - propellant
player(cp).advres.Plastics = player(cp).advres.Plastics - plastic
End Sub
Function CalcDistance(xstart As Integer, ystart As Integer, xend As Integer, yend As Integer) As Integer
Dim a2 As Double, b2 As Double, c2 As Double
Dim xdiff As Single, ydiff As Single
xdiff = xstart - xend
ydiff = ystart - yend
If xdiff < 0 Then xdiff = xdiff * -1
If ydiff < 0 Then ydiff = ydiff * -1
xdiff = xdiff * 40
ydiff = ydiff * 40
b2 = xdiff * xdiff
c2 = ydiff * ydiff
a2 = b2 + c2
a2 = Sqr(a2)
CalcDistance = a2
End Function
I've saved all my globals variables onto a disk and brought them in - in my spare time, I can now chuck out little functions and subs I can then throw in the game when I get home.
I can't test them, but I can at least write them...
and the difference between gunmetal grey, dark grey, and metallic black is...?Quote:
Originally posted by Arbiter
4 * graphics would be nice, they'd only have to be different colours to reflect the metals used
standard - gunmetal grey
light - silvery
strong - darker grey
s/l - metallic black (or copper or something)
your call....
To me, significant, to colour blind you, minimal.
Use different colours then you slapper!
Did the examples I gave for the components make sense to you?
er...I think so. Ultimately they're all just numbers to me. I think I grasp what you're trying to convey. Just tell me what to draw and everything is going to be A-OK.
Change the font on your sig, it's painful.
The numbers were arbitrary anyway, you were to look at them relative to each other.
OK, I think I get it.
The first stage of the GUI design is complete. I'll make a start on the second stage this evening. I could send you an image, but it would mean very little to you at the moment.
Actually, I will. bear in mind a number of things. 1) the text is simply for my reference for positioning. 2) the loss of quality due to using jpeg. 3) my current ignorance of the screen shapes and sizes.
I've tried to make it modular (using loads of layers in the PSD, but this will not be apparent in a flat image)
OK, that quite nice. I'll need to find some way of applying the GUI image to the background of my frames. I may have to use a different container control.
Are we going to have up and down states for these buttons?
And where does the black and green colour scheme fit into this?
GRR! I knew I should have kept it to myself rather than having to explain it.
I was planning to build panels of the brushed metally stuff (thats what the outside "box" is. I simply wanted all 4 bevelled edges and corners available to me.
The button I showed was the down state. The up state has the green light turned off (its a darker green) The design inspiration came from lift buttons.
The black on green colour scheme would be used for any screens or panels within the GUI. I'll try to mock something up for you to explain better.
I'll await your mock up eagerly.
Will you want the buttons to light green as the mouse pointer travels over them.
When they're clicked, they'll probably only be visible for a quadrillionth of a second until they're replaced by the screen they trigger...
sounds like a plan
ok
Right,
The dull green button is before the mouse is over it, the light green is the mouse over version.
What's the bit in the middle?
Any screen / monitor / output.
The buttons are for input, the screens for output (eg energy graph) yeah?
How are you going to ensure that the buttons match the background? (i.e. the lines join up)
Ideally, the buttons should be able to go anywhere...
if by "lines join up" you are referring to the brushed effect, then it's already taken care of, but you'd have to see the PSD for that.
If it helps you to visualise, both buttons on the mock-up were made from the same layers, simply in different places.
Easy-peasy
with hindsight, they don't need to match up. in reality they would be built from 2 different pieces of metal.
You'd have to show me for me to appreciate.
So, what time will you be at Gould st?
just don't...I'll probably leave here between 4 and 4:30 (but that's not set in stone). If I come to meet you, we'll go back to mine and have brew or two. I'll copy all the stuff I've done today at home and show you the deeper principles behind the GUI. Then, and only then, will we think about going anywhere...And even that's not definite. Ideally I wanted a quiet night in, playing with my system and fiddling with graphics.
can't you compile with debug info? That way when it crashes it will tell the line? I don't know if this works but it did in older versions of vb
I'll do that in future.
So, what do you think of our baby?
Hairy man,
I'm looking forward to what you've got for me today...
Lots of pretty pictures!
honestly it looks really good, but i'm having the same problem with it that i am having with SMAC. I can't figure out how to play it :(
i bought smac used at a trading store and it didnt have instructions.
It took me like 20 min to figure out that those spidery things were actually movable. Then a few more to remember i had to use arrow keys to move them.
I haven't figured out how to move them off of the grid (if possible) and if not, how to make more grid, etc.
It would really help if you added a quick text file to the download explaining step by step how to do a couple things.
If you read through the thread in the games and graphics programming forum, there's loads of information in there as to what things are supposed to do and how to do them.
If you post any questions you have regarding the game and any comments in that forum, then other people can debate them as well. The only people who tend to read posts in here are Behemoth and I...
Thanks.
Ok, I was up till all hours last night. I think I've built all the necessary graphics for the GUI for the main screen (yup, thats all and it probably took me the best part of 4 1/2 hours to do that, not counting the preparation at college yesterday!) but probably won't take so much time in future.
How do you want them?
I was thinking of giving you a flat full screen 800 x 600 image (with a clean high quality nebula image in because the old one's quality is quite degraded now), with all interface panels and the up states of all buttons, and then sending the down states of the buttons separately for you to plug in.
Alternatives include me giving you all the up and down states separately, with a blank interface for you to plug stuff in, or me sending you 6 800 x 600 images with all possible combinations of upsand downs, and you can show the required screen when necessary (very inefficient method!)
let me know, and I'll send them on to you.
Thanks for the effort you put in. I appreciate it.
I'd like both please. If you could send me a full image so I can see what you've visualised as the interface and then the individual objects to create it myself, so I can see how it all works.
The full image first please - I'd like to see this in its full glory....
I'll have to recompose the big image (I couldn't fit it on a disk without breaking it up), be with you in about 10 minutes.
ok
I've constructed a zip with all buttons and the interface for the main screen, and a fresh splash screen for ya.
mmm, a good days work.
Pretty funky.
I'll call you in a minute...
Oooh, oooh, where's the zip?
its 0.99MB i'll mail it to you.
Code:
Function CalcIndPoints() As Integer
Dim x As Integer
Dim temp As Integer
temp = 50
For x = 0 To UBound(player(currplayer).Building)
If player(currplayer).Building(x).Type = 3 Then temp = temp + 100
Next x
End Function
Sub CreateComponents()
Dim IndPointsRem As Single, x As Integer, temp As Single
IndPointsRem = CalcIndPoints
If player(currplayer).distind = True Then
temp = IndPointsRem / UBound(player(currplayer).buildq)
For x = 1 To UBound(player(currplayer).buildq)
With player(currplayer).buildq(x)
If .pointsrem - temp < 0 Then
IndPointsRem = IndPointsRem - .pointsrem
.pointsrem = 0
Else
.pointsrem = .pointsrem - temp
IndPointsRem = IndPointsRem - temp
End If
End With
Next x
End If
End If
For x = 1 To UBound(player(currplayer).buildq)
If IndPointsRem > 0 Then
With player(currplayer).buildq(x)
If IndPointsRem - .pointsrem < 0 Then
.pointsrem = .pointsrem - IndPointsRem
IndPointsRem = 0
Else
IndPointsRem = IndPointsRem - .pointsrem
.pointsrem = 0
End If
End With
End If
Next x
For x = 1 To UBound(player(currplayer).buildq)
With player(currplayer).buildq(x)
If .pointsrem = 0 Then
Select Case .Type
Case "Weapons"
Components.Weapon(.id).stored(currplayer) = Components.Weapon(.id).stored(currplayer) + 1
RemoveFromBuildQ (x)
Case "Armour"
Components.Armour(.id).stored(currplayer) = Components.Armour(.id).stored(currplayer) + 1
RemoveFromBuildQ (x)
End Select
End If
End With
Next x
End Sub
Sub RemoveFromBuildQ(component As Integer)
If component = UBound(player(currplayer).buildq) Then
ReDim Preserve player(currplayer).buildq(UBound(player(currplayer).buildq) - 1)
Else
player(currplayer).buildq(component).id = player(currplayer).buildq(component + 1).id
player(currplayer).buildq(component).pointsrem = player(currplayer).buildq(component + 1).pointsrem
player(currplayer).buildq(component).Type = player(currplayer).buildq(component + 1).Type
ReDim Preserve player(currplayer).buildq(UBound(player(currplayer).buildq) - 1)
End If
End Sub
Function CalcBuildQIndReq() As Single
Dim x As Integer
For x = 1 To UBound(player(currplayer).buildq)
CalcBuildQIndReq = CalcBuildQIndReq + player(currplayer).buildq(x).pointsrem
Next x
End Function
Still not got that zip
Oooh, ooh, I have now!
Ian,
I have to put the buttons in the places specified, there's no ability to customise the GUI.
1,
There's a faded out copy of the button on the big bitmap
2,
The streaks on the metal will not line up if I put the buttons anywhere else.