strategiespiel "klick und bauen"

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: strategiespiel "klick und bauen"

BeitragMo, März 05, 2007 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
Ich will mich nunmal an einem Startegiespiel á la age of empires machen.
Ich wollte von euch wissen wie ich das am besten mache mit dem gebäude auswählen und dann klicken=bauen.

Ich hab grad irgendwie keine idee wie ich das machen könnte.

mfg mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

BladeRunner

Moderator

BeitragMo, März 05, 2007 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Simple Frage: Hast du vorher schon was anderes fertig gemacht ?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Tankbuster

BeitragMo, März 05, 2007 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Strategie-Spiel ist schon ziemlich viel Arbeit! Das ist das schwierigste, was man sich aussuchen kann Very Happy
Ich sage dir, dass du dich höchstens 2 Monate damit beschäftigen wirst,... dann wirds dir zu langweilig. Aber wenns dir spaß macht, kannstes gerne machen.
Und deine Frage ist auch sehr missverständlich. Willst du das 3D oder 2D machen. <-- Das würde ich gern mal wissen. Bei 3D muss man nämlich die 2D Koords erst mal in 3D Koordinaten umwandeln.
Dafür würde ich dir dann
Zitat:
PICKEDX()
PICKEDY()
PICKEDZ()

empfehlen^^
Ansonsten kann ich dir nur sagen, dass du Types benutzen könntest, und den Rest mit MouseX() und MouseY().
Twitter
Download Jewel Snake!
Windows|Android

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, März 05, 2007 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe sowas zwar noch nicht gemacht, aber mein Beitrag dazu wäre:

eine Fokusvariable erstellen, die auf das Auswahlobjekt hinweist. Das kann dann zB ein Typeeintrag oder ähnliches sein.

Strategiespiele sind im übrigen nicht grad der einfachsten Spiele, die man so programmieren kann. Kenne aber auch deinen Kenntnisstand nicht.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

mas93

BeitragMo, März 05, 2007 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
natürlich habe ich schon ein paar andere Projekte fertig bekommen.
Außerdem habt ihr das vllt auch n bisschen falsch verstanden.
Mir gehts eigentlich nur um das klicken und bauen.
Wollt schon immer mal wissen wie das genau geht.

Ich weiss schon das ich das irgendwie mit types und mousex() +y() machen muss.
Wäre aber nett wenn ihrs mir noch n bisschen genauer erklären könntet.

mfg mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

FreetimeCoder

BeitragMo, März 05, 2007 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast immer noch nicht gesagt ob 2D oder 3D Rolling Eyes
"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

mas93

BeitragMo, März 05, 2007 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
sry vergessen.

In 2d.

mfg mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

BladeRunner

Moderator

BeitragMo, März 05, 2007 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
du hast ja irgendwo deine Bauleiste. Anhand der Koordinaten der Vorschaubilder in dieser Leiste kannst Du auf Kollision mit dem Mauszeiger prüfen (oder genauer: dem HotSpot der Mouse). Anhand der erfolgen Kollision weisst Du welcher Typ gebaut werden soll.
Findet ein Mausklick statt ohne dass die Vorschauleiste (oder andere Bedienelemente) eine Kollision auslösen wollte der User wohl bauen und das aktuell gewählte Objekt wird an die aktuellen Koordinaten eingetragen (sprich eine Type-instanz mit den aktuellen Werten wird erstellt).

Warum ich wissen wollte was Du fertig hast ? Weil es ärgerlich ist wenn man sich den Mund fusslig erklärt ohne zu wissen ob es schon einen Sinn macht.
Tut mir leid wenn das jetzt böse klingt, aber anhand deiner Posts bisher glaube ich einfach nicht dass Du reif für ein solches Projekt bist.

Könntest Du ein paar deiner fertigen Werke hochladen damit wir sehen welchen Kenntnisstand wir als gegeben sehen können? Dann fällt auch das helfen leichter.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

ETsoftware

BeitragMo, März 05, 2007 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Klar sind Types vielleicht umfangreicher, oder was weiss
ich, aber ich würde es mit Dim-Feldern machen (hab
so was schon einmal getestet). In einer Variable speichert
man dann, wie viele Häuser schon gespeichert wurden.
Code: [AUSKLAPPEN]
Dim HausX()
Dim Haus Y()
anz_haus=0

Auch klar, irgendwie müsste man ein Haus aus der
Liste löschen können.

Na ja, vielleicht sind Types vielleicht doch die bessere, einfachere
Lösung.
ETsoftware 2007

BladeRunner

Moderator

BeitragMo, März 05, 2007 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Was soll das bringen ? Du müsstest dir ja vorher schon eine Begrenzung für die Häuser überlegen. Wenn weniger Häuser gebaut würden, würde massig Speicher verschenkt, wenn mehr gebaut werden sollten, würde das System kapitulieren.
Und wie du schon festgestellt hast wäre ein Löschen / Neuvergeben unnötig erschwert.
Das halte ich nicht grade für eine tragbare Lösung, sorry.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Omenaton_2

BeitragDi, März 06, 2007 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe so eine Art Age of Empires Aufbaustrategiespiel gemacht. (Allerdings ohne Multiplayer). Es ist seit Ende letzen Jahres fertig, jetzt suche ich Publisher dafür.
Die Entwicklung hat sich über 4 Jahre hingezogen. Wenn ich die Zeit in 8 Stunden Tage und davon 5 pro Woche umrechne, dann würde ich auf ca 1,5 bis fast 2 Jahre kommen, die ich gebraucht habe. (Habe aber alles von Grafik bis Programmierung und Leveldesign selber gemacht).
Da gibt es so gewaltig viel zu bedenken, zu planen zu machen und Probleme zu lösen, daß die konkrete Frage nach "wie ich Gebäude anklicke und dann was produzieren mache" keinen Sinn ergibt. Die Anworten ergeben sich selbst, wenn du klein anfängst und dein Projekt Schritt für Schritt weiterentwickelst. Die Chancen, daß du es schon nach 1-3 Monaten aufgeben wirst, wenn sich Probleme auf Probleme türmen, ist sehr groß.

Ich gehe davon aus, daß du das auch nicht schneller als in ein paar Jahren fertig haben könntest. Frage dich erstmal, ob du tatsächlich bereit bist Jahre deines Lebens damit zu verbringen über Probleme mit deinem Code nachzugrübelsn oder langweilige Animationsframes für Einheit Nummer 31 zu machen anstat World of Warcraft oder Battlefield zu spielen.

Trotzdem, als Tipp, fang erst mit einem Leveleditor an. Das kann schon der Kern des Spieles sein. Du mußt erstmal ein Gebäude überhaupt richtig darstellen können, auch mit Scrolling, dann auch Einheiten und lass die Einheiten erstmal richtig fahren, steuern und mach Pathfiding dafür. Die Produktion von neuen Einheiten oder Geäuden soll danach kommen. Das ist eine der einfachsten Aufgaben die du zu lösen hast.

mas93

BeitragDi, März 06, 2007 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
hättest du den vorherigen thread von mir gelesen wüsstest du das es mir nur um das klicken und bauen geht.
Ich will garkein Spiel machen.
Ich weiss das das sehr viel aufwand ist und das ich dafür noch viel zu wenig erfahrung hab.
Mir ging es NUR um das KLICKEN + BAUEN

mfg mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Silver_Knee

Betreff: Klicken und Bauen

BeitragDi, März 06, 2007 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
zuerst der Type
Code: [AUSKLAPPEN]

Type Enheit
 Field x,y
 Field einheitnart$
 Field weis_ich_was_du_hier_noch_fur_variablen_brauchst%
End Type

und jetzt zum klicken
Code: [AUSKLAPPEN]

If ImageRectCollide(haus_bauen,haus_bauenx,haus_baueny,MouseX(),MouseY())
baumodus_fur_haus=true
Endif
If baumodus_fur_haus
 If ImageRectCollide(Level,Levelx,Levely,MouseX(),MouseY())
  Bauen "Haus",MouseX(),MouseY()
  baumodus_fur_haus=False
 End If
End If

und zum Bauen
Code: [AUSKLAPPEN]

Function Bauen(art$,x,y)
 e.Einheit=new Einheit
 e\x=x
 e\y=y
 e\einheitnart$=art$
End Function


Bitteschön so in Etwa Mach ich das bei Meinem LEARN
Wenn du alles kapierst schön
Wenn nicht lern halt solange Programmieren bis dus kapierst ....

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group