Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
dgorski Mini JLI'ler
Anmeldedatum: 01.12.2003 Beiträge: 12 Wohnort: Borken Medaillen: Keine
|
Verfasst am: 01.12.2003, 09:49 Titel: Spiel Programmieren? |
|
|
Hallo,
also bin ganz neu in diesem forum und habe ein großes Problem!
Und zwar muß ich für die schule ein spiel programmieren in 2D! Habe aber absolut keine ahnung wie ich sowas programmieren soll, also habe erfahrungen mit dem buch Visual C++ in 21 tagen also bin da bei kapital 10 angelangt also soweit sind wir in der schule gekommen bis jetzt! Ja jetzt sollen wir mit hilfe des Microsoft visual c++ 6.0 compiler ein spiel schreiben! Ja wenn es möglich ist möchte ich gern so schiffeversenken programmieren oder so in richtung marioland oder ähnliches kann auch was einfacheres sein! hauptsache ich kann was vorweisen da ich nicht mehr soviel zeit habe(7tage) also könnte mir einer helfen, also wie man genau sowas programmiert? oder mir irgendwelche guten tutorials sagen oder schicken? Meine e-mail lautet dgorski2@web.de. Wäre echt nett wenn mir einer weiter helfen könnte wie gesagt komme keinen schritt weiter hier..... danke schon mal. |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 01.12.2003, 13:27 Titel: |
|
|
Da hast du dir ja ganz schön viel vorgenommen, wenn du dein erstes Spiel in C++ in einer Woche programmieren willst. Aber weil das rundenbasiert und ziemlich einfach ist, geht es gerade noch.(Wenn du dich reinhängst, wirst du es auch schaffen.)
Zu deiner Frage:
Es gibt dafür kein Patentrezept und wir können dir hier auch nicht beibringen, wie man ein komplettes Spiel schreibt. Dafür sind diverse Tutorials und Bücher(wie z.B. Christians ) gut.
Aber ich kann dir einen kleinen Ansatz geben.
Für die Spielfelder würde ich zwei 2D-Arrays des types integer(oder auch short) nehmen.
Für jedes Feld kannst du dann eine Zahl zuweisen. Z.B. 0 bedeutet noch nicht erforscht, 1 bedeutet wasser, 2 bedeutet schiff, 3 bedeutet getroffen, etc...
Des weiteren brauchst du dann noch ein Input des Spielers. D.h. entweder bekommst du die Koordinaten im Spielfeld durch die Mausposition heraus, oder durch absolute Kooridinateneingaben der Tastatur.
Du überprüfst dann, ob getroffen wurde oder nicht. Dann sprichst du das aktuelle Feld an und änderst seinen Wert in getroffen/wasser/etc...
In einer Renderfunktion durchläufst du das gesamte Spielfeld (bzw. beide Spielfelder) und zeichnest je nach dem Wert des Feldes ein Wasser-/Schiff-/"Nicht Erforscht"-/etc...-Tile. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Plasmarain Mini JLI'ler
Anmeldedatum: 21.11.2003 Beiträge: 37
Medaillen: Keine
|
Verfasst am: 01.12.2003, 13:33 Titel: |
|
|
Hi,
wie soll ich mir das vorstellen?
Dein Lehrer ist eines Morgens aufgewacht und hat sich gedacht das können die wohl machen oder wie?
Ihr müßt doch was durchgenommen haben damit ihr das überhaupt könnt.
Oder setzt der einfach vorraus das ihr das alles schon von Geburt aus machen könnt?
Am besten du kaufts dir das Buch zu Forum, damit bin ich dabei es zu lernen. : DirectX 9 und Visual C++ von Christian Rousselle
ISBN: 3-8272-5977-0
Markt+Technik
Mehr kann ich dir auch nicht helfen.
Ansonsten wie The Lord of Programming schon geschrieben hat.
MFG
Matthias |
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 01.12.2003, 13:42 Titel: |
|
|
Ich vermute mal, dass es hier gar nicht um ein "richtiges" Spiel mit DirectX etc. geht, sondern lediglich um eine kleine Windows-Anwendung. Mit der Einschränkung, dass es sich nicht um ein "sinnvolles" Programm handeln soll, sondern halt um ein kleines Spiel, wie Minesweeper oder Solitaire.
Sag uns doch mal, was du alles kannst bzw. was ihr alles in der Schule durchgenommen habt. Was ist das denn für eine Schule? Welche Klasse bist du?
cu Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
dgorski Mini JLI'ler
Anmeldedatum: 01.12.2003 Beiträge: 12 Wohnort: Borken Medaillen: Keine
|
Verfasst am: 01.12.2003, 13:46 Titel: |
|
|
Also es war so das wir das buch c++ visual c++ 6.0 in 21 tagen gekauft und haben und beim kapital 10 stehen geblieben sind also bei Bilder, zeichnungen und bitmaps stehen geblieben und danach haben wir dann noch das kapital9 activeX-steuerelemente durch genommen! haben dann auch bitmaps usw. eingefügt und dann sagte der leher so jetzt kann sich jeder ein spiel aussuchen und programmieren! so war es und ja jetzt steh ich da und habe keine ahnung! und soweit ich weiß sollen wir das spiel unter visual c++ 6.o programmieren und das alles dialogbasierend sein soll..... tutorials finde ich dafür nicht! |
|
Nach oben |
|
|
dgorski Mini JLI'ler
Anmeldedatum: 01.12.2003 Beiträge: 12 Wohnort: Borken Medaillen: Keine
|
Verfasst am: 01.12.2003, 13:47 Titel: |
|
|
also bin in der ausbildung als fachinformatiker im bereich anwendungentwicklung! Bin im 3.lehrjahr! Und glaube du hast recht soll nur ein kleines spiel sein nicht ein 3d spiel! und kannst du mir weiter helfen? |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 01.12.2003, 14:03 Titel: |
|
|
Wenn das ganze Dialogefeldbasierend ist, würde für jeden Spieler jeweils zwei Eingabefelder für die Koordinaten machen und einen Button zum bestätigen.
Wenn du schon Bitmaps etc... auf Dialogfelder zeichnen kannst, dürfte das eigentlich kein allzugroßes Problem mehr sein.
PS: Es gibt hier auch eine editier-Funktion(rechts über jedem Beitrag) _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
dgorski Mini JLI'ler
Anmeldedatum: 01.12.2003 Beiträge: 12 Wohnort: Borken Medaillen: Keine
|
Verfasst am: 01.12.2003, 14:31 Titel: |
|
|
Okay jetzt angenommen ich möchte ein Spiel programmieren was in richtung schiffeversenken geht: Dann könnte man doch bitmaps in zweierleih hinsicht anzeigen lassen. sag mal das ich 10 bitmaps hintereinander und untereinander anzeigen lasse die von anderen bitmaps verdeckt werden die einfach leer sind. So es gibt zwei spieler die ihre koordinaten eingeben können ganz am anfang wo die schiffe liegen sollen! Das spiel beginnt der erste spieler gibt seine koordinaten ein angenommen es ist ein treffer wo der gegenspieler sein schiff hingesetzt hat ist es dann möglich das eine bitmap zu löschen und das darunter liegende Bitmap anzuzeigen? also das dann zum beispiel ein treffer bitmap erscheint? Andersrum wenn es kein treffer ist das das oberliegende bitmap gelöscht wird und ein fehler bitmap angezeigt wird? Versteht mich einer wie ich das spiel gestalten möchte? oder ist das gar nicht möglich? hat einer eine andere idee? |
|
Nach oben |
|
|
Plasmarain Mini JLI'ler
Anmeldedatum: 21.11.2003 Beiträge: 37
Medaillen: Keine
|
Verfasst am: 01.12.2003, 21:18 Titel: |
|
|
Machste in der initialisierung, schiffe setzen.
dann in einer schleife immer wieder der eine dann der andere ein feld wählen.
und machst dann
Code: |
for(so machst du dann weiter und verlässt die schleife wenn ein spieler alle sagen wir mal 10 Schiffsteile gefunden hat)
{
erster spieler setzen
zweiter spieler setzen......
if(Gewähltesfeld == Schiff)
{
tauscht du das bitmap "wasser" gegen bitmap z.B Zertöhrer_vornaus
und setzt variable Schiffe_gefunden++
}
}
. |
also so würde ich das angehen, wie du die bitmaps plazierst, weiß ich nicht ich habe keine ahnung wie ihr das gelernt habt. du soltest aber ohne probleme ein bitmap einfach "überschreiben" können
Für das Feld mach dir am besten zwei 2Dimensionale Arrays:
bool Feldsichtbar[20] [20], Feldnichtsichtbar[20] [20]
jenachdem wie groß das sein soll....
für ne eins da ist was für 0 da ist nichts |
|
Nach oben |
|
|
dgorski Mini JLI'ler
Anmeldedatum: 01.12.2003 Beiträge: 12 Wohnort: Borken Medaillen: Keine
|
Verfasst am: 02.12.2003, 06:52 Titel: |
|
|
Ja hört sich echt nicht schlecht an danke, aber wenn mir jetzt noch einer sagen kann wie ich zum beispiel 50 kleine Bitmaps * 2 auf dem bildschirm bekomme? und wie ich sie wieder lösche bzw. das andere wieder sichbar mache wenn es ein treffer ist? Kann mir einer dazu was sagen? |
|
Nach oben |
|
|
Mr.X Junior JLI'ler
Anmeldedatum: 15.04.2003 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 02.12.2003, 10:13 Titel: |
|
|
dgorski hat Folgendes geschrieben: | also bin in der ausbildung als fachinformatiker im bereich anwendungentwicklung! Bin im 3.lehrjahr!... |
Irgendwie paradox in Bezug auf die Fragen die Du hier stellst.
naja, nichts für ungut:
dgorski hat Folgendes geschrieben: | ...wenn mir jetzt noch einer sagen kann wie ich zum beispiel 50 kleine Bitmaps * 2 auf dem bildschirm bekomme? und wie ich sie wieder lösche bzw. das andere wieder sichbar mache wenn es ein treffer ist? Kann mir einer dazu was sagen? |
Da schaust Du mal in Dein Buch, wie man ein Bitmap per GDI ausgibt, und diese ganze Funktionalität führst Du dann halt 50*2 mal aus. Zum Löschen schaust Du wieder in Dein Buch, da findest Du z.B. 'Invalidate()', was den gesamten Fensterinhalt löscht. Und dann gibst Du erneut alle Felder per Bild aus, und da wo ein Treffer ist, zeigst Du stattdessen ein anderes als das Standardbild an. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 02.12.2003, 12:09 Titel: |
|
|
@Mr.X: ICh glaub du verstehst das mit dem Fachinformatiker falsch. Informatiker!=Fachinformatiker
Ich glaube Fachinformatiker kennen sich mit Rechnern aus und werden deshalb im Verkauf/Beratung eingesetzt. So hat es mir ein Bekannter gesagt der auch ein Fachinformatiker ist. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
dgorski Mini JLI'ler
Anmeldedatum: 01.12.2003 Beiträge: 12 Wohnort: Borken Medaillen: Keine
|
Verfasst am: 02.12.2003, 13:24 Titel: |
|
|
Okay Mr.x hätte ich auch von selber drauf kommen müssen! Aber danke! Werd mal gucken was sich machen läßt ansonsten meld ich mich nochmal |
|
Nach oben |
|
|
Zo0oL Mini JLI'ler
Anmeldedatum: 02.12.2003 Beiträge: 11 Wohnort: Pb Medaillen: Keine
|
Verfasst am: 03.12.2003, 13:16 Titel: |
|
|
Dazu noch kurz: Informatiker != Programmierer
(meistens jedenfalls)
Zum Thema: Soll dein Spiel denn überhaupt Grafik enthalten? Vielleicht reicht ja ein einfaches Textspielchen, ähnlich eines der alten Textadventures.
In 7 Tagen was grafisches ist schon eher hart...
Aber du musst ja auch wissen, was ihr so durchgenommen habt, daran kannst du doch ungefähr erkennen, was verlangt wird. Wenn ihr z.B. nur die Programmiersprache C oder C++ an sich ohne Windows-spezifische Dinge hattet, dann würde ich mich auf ein Konsolenspiel beschränken.
Wenn ihr natürlich Fenster und Gerätekontexte und Grafik, etc. durchgenommen habt, dann wird das wohl auch verlangt sein.
Naja, viel Erfolg auf jeden Fall |
|
Nach oben |
|
|
Mr.X Junior JLI'ler
Anmeldedatum: 15.04.2003 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 04.12.2003, 09:01 Titel: ... |
|
|
@FallenAngel
Das Fachinformatiker != Informatiker ist mir schon bewusst.
Also die Bezeichnung "Fachinformatiker für Anwendungsentwicklung" sagt mir vom reinen Begriff her, das man die Fähigkeit besitzt eine Anwendung (sprich ein Programm, mit welchem ein nichtversierter Benutzer umgehen kann) entwickeln kann. Wieso sollte er sich da mit dem Rechner ansich auskennen.
Ich kenne allerdings die genauen Hintergründe, was einen Fachinformatiker ausmacht nicht, daher spekuliere ich lediglich anhand der Namensgebung "...für Anwendungsentwicklung" und beziehe die Bezeichnung Fach- darauf, daß dieser zumindest sein Fachgebiet beherrscht/kennt.
Ist Dein Bekannter ein "Fachinformatiker für Anwendungsentwicklung", oder Fachinformatiker für irgendetwas anderes, was mehr mit Rechnerarchitektur zu tun hat?
P.S. @ Zoool:
Also zu dieser Aussage "Informatiker != Programmierer" möchte ich hinzufügen:
Ích denke schon, das jeder Informatiker programmieren kann (oder zumindest können sollte), da es eine Grundlage ist.
Wenn er aber nun nicht eine API wie die Win32API ansprechen kann aufgrund Unwissens über die verwendeten Funktionen, dann hat das meiner Meinung nach nichts mit "nicht programmieren können" zu tun. Und dementsprechend würde ich ergänzend meinen "Jeder Informatiker != Programmierer für eine bestimmte API". |
|
Nach oben |
|
|
|