PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum Handheld-Wiki

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de
portablegaming.de  

Zurück   portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung


Development Abteilung Ihr wollt für euren Lieblingshandheld Spiele oder Tools entwickeln?
Bitte die Präfixe benutzen!

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 12.03.2006, 18:47   #1
 
Registriert seit: 09.03.2006

sooc hat die Renommee-Anzeige deaktiviert

sooc eine Nachricht über ICQ schicken
Standard Viele Gegner in einem Spiel

Ich ich probiere gerade ein bisschen mit der SVGAlib rum und mach da ne Art
Rtype, Paradious oder Solar Strike....weiss noch nicht. Naja auf jeden Fall hab ich Probleme so viele Gegner zu kontrollieren.
Ich habe bisher einen Gegner, von dem merk ich mir an jeder stelle die x,y Koordinaten.(Jede Bewegung muss ich also speichern)
Wenn ich schiesse ueberpruefe ich ob die Bullet auf der selben Strecke liegt wie der Gegner. Wenn ja dann getroffen....Aber ich kann mir nicht vorstellen wie ich sowas machen soll wenn da an die 10 Gegner sind...Soll ich mir dann echt alle Koordinaten merken? Wie macht ihr sowas?

Sorry, ich weiss SVGAlib is nicht fuer HandHelds aber ihr habt ja Ahnung von Spieleprogrammierung.

mfg sooc
sooc ist offline   Mit Zitat antworten
Sponsored Links
Alt 12.03.2006, 19:22   #2
Gesperrt
 
Registriert seit: 19.10.2004

MasterK wird schon bald berühmt werden

Standard

ja, du musst logischerweise die positionen jedes gegners speichern. die bewegungen an sich musst du aber nicht speichern, nur eben die neuen positionen.
und 10 gegner auf trefferkollision überprüfen ist nix.
natürlich solltest du nur die gegner überprüfen die in dem moment auf dem bildschirm zu sehen sind. wenns extrem viele gegner sind könnte man den bildschirm noch in mehrere bereiche einteilen, für jeden gegner den bereich speichern und dann nur mit den gegnern auf kollision überprüfen die sich im gleichen bereich befinden wie das geschoss/laser/wasauchimmer
MasterK ist offline   Mit Zitat antworten
Alt 12.03.2006, 19:30   #3
 
Registriert seit: 09.03.2006

sooc hat die Renommee-Anzeige deaktiviert

sooc eine Nachricht über ICQ schicken
Standard

Danke erstmal fuer die antwort...
Das werden ja dann ne ganze Menge Variablen die ich da verwende....aber wenn das normal ist , ok....

Zitat:
Original von MasterK
ja, du musst logischerweise die positionen jedes gegners speichern. die bewegungen an sich musst du aber nicht speichern, nur eben die neuen positionen.
Jo genau so mach ich das ja! Immer nur die neuen speichern und die alten werden dabei ueberschrieben.
sooc ist offline   Mit Zitat antworten
Alt 12.03.2006, 23:00   #4
Gesperrt
 
Registriert seit: 19.10.2004

MasterK wird schon bald berühmt werden

Standard

nun... du hast ja auch ne ganze menge variablen für die gegner an sich
letztendlich läufts eh auf ein array oder ne liste oder vergleichbares hinaus. da kann dir die tatsächliche anzahl ja erstmal egal sein.
MasterK ist offline   Mit Zitat antworten
Alt 12.03.2006, 23:12   #5
Moderator
 
Benutzerbild von O-bake
 
Registriert seit: 30.09.2002
Alter: 42

O-bake genießt hohes Ansehen
O-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes AnsehenO-bake genießt hohes Ansehen

Standard

Du musst das ganze über Arrays machen.

Du erstellst ein Objekt für den Gegner:

Code:
typedef struct
{
 int x;
 int y;
 int width;
 int height;
} tGegner;
und deklarierst ihn

Code:
tGegner Gegner[10];
somit hast du 10 verscheidene Gegner, die alle eigen x,y,width und height Werte haben.

Jetzt kannst du einfach mit einer Schleife durchzählen:

- soll zB jeder Gegner um einen Pixel nach rechts gehen, sagst du:

Code:
int i;
for (i=0;i<10;i++) Gegner[i].x++;
in dieser Schleife durchläuft i die Werte von 0 bis 9 und erhöht dann den Wert x jedes einzelnen Gegner durchlaufend um 1.
Deine Kollisionsabfrage, die du bis jetzt benötigt hast, behälst du einfach bei, jedoch fragst du sie für jeden Gegner einzeln ab, sondern als Funktion von i.

Alles klar?
O-bake ist offline   Mit Zitat antworten
Alt 12.03.2006, 23:37   #6
 
Registriert seit: 09.03.2006

sooc hat die Renommee-Anzeige deaktiviert

sooc eine Nachricht über ICQ schicken
Standard achja struct gibt es ja auch noch

Yeah danke schön das hilft mir sehr @Jazz
Mit struct hab ich mich nur oberflächlich beschäftigt aber das ist endlich mal ein Grund es zu vertiefen. Korrekt!
sooc ist offline   Mit Zitat antworten
Antwort

  portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu einem Spiel ! civic1000 Sonstiges (PSP) 6 09.01.2007 23:29
Multiplayer mit nur einem spiel? TräumtVomWii Spiele (PSP) 8 14.10.2006 18:15
Sonic und Mario in einem Spiel? gt231 GameCube 14 21.09.2005 15:52
AR funkt bei einem Spiel nicht...! Hedey00 Hardware (GBA) 4 31.08.2004 14:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:31 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
Template-Modifikationen durch TMS
PortableGaming.de © bk 2000 - 2010

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231