Energiebalken(Wert) für 3D-Objekt

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

developer

Betreff: Energiebalken(Wert) für 3D-Objekt

BeitragSo, Aug 06, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Wie kann ich einem fixen 3d-Objekt(Gebaude) Werte(Schadensanzeige) hinzufügen/zuweisen? Kann man da Surface verwenden ?

Danke

mfG Developer
  • Zuletzt bearbeitet von developer am So, Aug 06, 2006 19:30, insgesamt einmal bearbeitet

Cat

BeitragSo, Aug 06, 2006 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinst du das genau? Willst du irgendwo auf dem Bildschirm einen
Balken haben der als Schadensanzeige dient?
Also ich würd mir einfach einen Balken in einem Grafikprogramm zeichnen bestehend aus z.b. 10 Frames dem ich immer ein Frame hinzufüge wenn weitere 10% des Gebäudes zerstört wurden.
So würds ich zumindest machen Wink

Hoffe es hilft dir weiter!

mfg
Intel Core 2 Duo E6300 (2 x 1,86 Ghz)

2 x 1024 MB Arbeitsspeicher

NVidia GeForce 8800 GT

PowerProgrammer

BeitragSo, Aug 06, 2006 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie ich developer verstehe meint der das so: Werte an ein 3D-Objekt dranhängen, also eine drangehängte Variable, oder so!

Wenn meine Vermutung richtig ist, solltest du dir mal Types anschauen! Damit ist sowas indirekt möglich!
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

Black Spider

BeitragMo, Aug 07, 2006 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube,
er will einen Schadensbalken genau da, wo das Gebäude ist.
Ich mach das jetzt mal mit Dim´s, geht aber auch mit Types:

Code: [AUSKLAPPEN]


Dim haus(5)        ;klar, das haus
Dim energie(5)    ;die Energie jedes hauses
Dim rot(5)            ; der rote Anteil im Energiebalken des Hauses
Dim gr(5)             ;...grüne
Dim bl(5)             ;...blaue

Dim px(5)
Dim py(5)
Dim pz(5)

For i = 0 To 5
haus(i) = CreateCube()
PositionEntity haus(i),RND(-10,10),5,RND(-10,10)
ScaleEntity haus(i),Rand(2,4),Rand(5,7),Rand(3,5)

energie(i) = 100
rot(i) = 0
gr(i) = 255
bl(i) = 0
Next

;...
While Not(KeyHit(1))

;...

For j = 0 To 5

CameraProject(cam,EntityX(haus(j),1),EntityY(haus(j),1),EntityZ(haus(j),1))
px(j) = ProjectedX()
py(j) = ProjectedY()
pz(j) = ProjectedZ()

If explosion_irgendwo_in_der_nähe Then
energie(j) = energie(j) - 5
rot(j) = rot(j) + 2.5
gr(j) = gr(j) - 2.5
End If

Next

;...

RenderWorld

For k = 0 To 5
If pz(k) > 0 Then
Cls
Color Red(k),Gr(k),Bl(k)
Rect px(k),py(k),energie(k),5
Next
;...
Wend
End


hab´ jetzt nicht ausprobiert ob es geht, aber müsste eigentlich Funktionieren.
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

FreetimeCoder

BeitragMo, Aug 07, 2006 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaub developer sucht das:

Code: [AUSKLAPPEN]


Graphics3D 800,600,0,2
SetBuffer BackBuffer()

Global Kamera=CreateCamera()
PositionEntity Kamera,0,10,-20

Light=CreateLight()

Type Gebaeude
Field Build
Field Haus
Field Gesundheit
End Type

For Houses=1 To 10
   CreateHaus
Next


While Not KeyHit(1)
   Cls
   If MouseHit(1)
      CameraPick(Kamera,MouseX(),MouseY())
      If PickedEntity()<>0
         UpdateHouseHealth(PickedEntity())
      EndIf
   EndIf
   UpdateWorld
   RenderWorld
   UpdateHouses
   Flip
Wend
End

Function CreateHaus()
   Build.Gebaeude=New Gebaeude
   Build\Haus=CreateCube()
   EntityPickMode Build\Haus,2
   Build\Gesundheit=100
   PositionEntity Build\Haus,Rnd(-10,10),0,Rnd(-30,30)
End Function

Function UpdateHouseHealth(Entity)
   For Build.Gebaeude=Each Gebaeude
      If Build\Haus=Entity
         Build\Gesundheit=Build\Gesundheit-10
      EndIf
   Next
End Function


Function UpdateHouses()
   For Build.Gebaeude=Each Gebaeude
      If EntityInView(Build\Haus,Kamera)
         CameraProject(Kamera,EntityX(Build\Haus),EntityY(Build\Haus),EntityZ(Build\Haus))
         For Balken=0 To Build\Gesundheit
            Color 255-Balken*2.5,Balken*2.5,0
            Rect (ProjectedX#()+Balken-Build\Gesundheit/2),ProjectedY#(),5,10,1
         Next
      EndIf
      If Build\Gesundheit<1
         FreeEntity Build\haus
         Delete Build
      EndIf
   Next
End Function



Klick auf die Würfel um deren Gesundheit zu verringern.
Ich hoffe ich konnte helfen Wink
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

PowerProgrammer

BeitragMo, Aug 07, 2006 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Wäre nur mal ganz nett, wenn er uns darüber aufklärt, was er jetzt wirklich will!

Gibt es hier im Forum nicht sogar eine Aneitung, wie man Fragen stellt, sodass sie auch allgemein verständlich sind Laughing
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!
 

developer

Betreff: Antwort von Developer

BeitragMo, Aug 07, 2006 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Very Happy

Vorab Danke für die Beiträge.

Was ich meine :

Ich will ein 3D-Strategiespiel machen - mit Gebaudebau u. Einheitenbau -
und der Energiebalken sollte die gleiche Funktion haben wie in solchen Spielen üblich ist.

PS : Es gibt so gut wie keine Hilfe im Internet, die Erklärt wie man so ein Spiel macht !
Kennt jemand einen Link(oder sonstiges) der mir weiterhelfen könnte Question

Danke

mfG Developer

PowerProgrammer

BeitragDi, Aug 08, 2006 7:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Link zum Thema, wie man Spiele programmiert? Nicht das ich jetzt wüsste!

Um Spiele zu programmieren musst du erstmal die Grundlagen von BlitzBasic und des Programmierens im allgemeinen verstehen. Die Befehle kennen reicht nicht, du musst wissen, was die machen!
Das sind die Grundvorraussetzungen für ein Spiel, weiterhin musst du sehr kreativ sein und logisch denken können. Und du brauchst Ehrgeiz, ein bisschen Ausdauer und viel, viel Gedult und musst Spaß an der Sache haben! Das musst du alles berücksichtigen, dann kannst du Spiele proggen!

(So sehe ich das jedenfalls, ihr anderen höchstwahrscheinlich auch)


Guck dich mal unter http://www.robsite.de um!
Ich kann dir auf jeden Fall das Buch "Jetzt lerne ich Spiele programmieren mit Blitz Basic" empfehlen! Da es nicht mehr hergestellt wird, musst du es dir bei Ebay besorgen oder besser ersteinmal in die Büchereien in deiner Umgebung! Für dieses Buch lohnt es sich, deine ganze Umgebung auf mindestens 100 Km abzuklappern Wink
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

FreetimeCoder

BeitragDi, Aug 08, 2006 9:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Es gibt so gut wie keine Hilfe im Internet, die Erklärt wie man so ein Spiel macht


Erklärungen für bestimmte Spiele wirst du sowieso vergeblich suchen.
Am besten machst du dir erst einen Plan von deinem Spiel.
z.B:
-welches Gebäude stellt welche Einheiten her?
-was können die verschiedenen Einheiten?
-wie groß ist der Schaden von bestimmten Waffen?

Und vor allem: Übernimm dich nicht!

Lern erst einmal richtig zu programmieren.
Das dauert ne Weile, aber es lohnt sich wirklich.

Wie PowerProgrammer schon sagt
www.robsite.de
ist eine empfehlenswerte Seite.

Da hab ich auch vieles lernen können Wink
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

Davok`xarden

BeitragFr, Aug 11, 2006 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme an er fragt wie man einen Lebensbalken genau über der jeweiligne Einheit anteigt.

Mach entweder Sprites über die Einheiten mit EntityParent oder mit Picking/projekting.
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT

Cat

BeitragFr, Aug 11, 2006 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau dafür gibts ja hier schon einige Codebeispiele, aber vielleicht meint
er so einen Balken wie's in Alarmstufe Rot üblich ist Question
Intel Core 2 Duo E6300 (2 x 1,86 Ghz)

2 x 1024 MB Arbeitsspeicher

NVidia GeForce 8800 GT

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group