Ball prallt nicht von aus Datei erzeugten Blöcken ab
Übersicht BlitzBasic
 BlitzBasic  Allgemein
 Allgemein| LucianoBetreff: Ball prallt nicht von aus Datei erzeugten Blöcken ab |  Di, Jul 25, 2006 15:12 Antworten mit Zitat   | |
|---|---|---|
| Hallo zusammen! Ich habe in einem Dim Feld (kacheln(23,31) das ich in meinem Leveleditor erzeugt habe, einen Levelhintergrund aus verschiedenfarbigen Kacheln in Form von verschiedenen Zahlen gespeichert. 9 bedeutet Luft 0-8 sind die verschiedenfarbigen Kacheln Jede Kachel ist 40*40 Pixel gross. Das Spiel ist 1280 * 960, deshalb habe ich das Dim Feld wie oben genannt gewählt. Das level könnt ihr euch so vorstellen: Einige rechteckige Plattformen hängen in der Luft und der Ball sollte an diesen abprallen. Wie kann ich nun mit möglichst geringem Arbeitsspeicheraufwand kontrollieren, ob der Ball von oben, unten, links oder rechts an eine Plattform oder einzelne Kachel prallt? Die Berechnung des Abprallwinkels ist mir klar. Danke für die Antworten! | ||
|   | Hubsi |  Di, Jul 25, 2006 15:16 Antworten mit Zitat   | 
|---|---|---|
| Code:  [AUSKLAPPEN] u=map((x+16)/32,(y-2)/32,0)  ; Oben / Up
 r=map((x+32)/32,(y+16)/32,0) ; Rechts / Right d=map((x+16)/32,(y+32)/32,0) ; Unten / Down l=map(x/32,(y+16)/32,0) ; Links / Left m=map((x+16)/32,(y+16)/32,0) ; Mitte / Middle Das ganze geht von 32*32 Pixel aus, das anzupassen sollte aber spätestens nach verstehen der Berechnungen eine Sache von Sekunden sein   | ||
| Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... | ||
| Luciano |  Di, Jul 25, 2006 15:33 Antworten mit Zitat   | |
|---|---|---|
| Hm das geht ein bisschen schnell...   Ist map() be dir das Dimfeld? und 32 ist die ballbreite und Höhe? Warum ordnest du das ganze den variablen zu? | ||
|   | Rone |  Di, Jul 25, 2006 16:06 Antworten mit Zitat   | 
|---|---|---|
| moin, Du musst das nicht unbedingt den Variablen zuorden, dass ist dir überlassen wie du den Mapeintrag an der Obejektposition verarbeitest.... Zum beispiel kannst du das auch so prüfen: Code: [AUSKLAPPEN] ;nach oben bewegen
 if keydown(Key_Up) then y=y-1 ;wenn kollision, bewegung rückgängig machen if map((x+20)/40,(y)/40) = 9 then y=y+1 endif endif ... ...oder wie auch immer, kommt immer drauf an was du grad machen willst...   mfg Rone | ||
|   | Hubsi |  Di, Jul 25, 2006 16:19 Antworten mit Zitat   | 
|---|---|---|
| Weil ich die Werte in aller Regel mehrmals in der Hauptschleife brauche und es schneller ist den Wert einer Variable zu lesen als ständig den Kram neu berechnen zu lassen   Zu den restlichen Fragen: Ja   | ||
| Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... | ||
Übersicht
 BlitzBasic
 BlitzBasic  Allgemein
 Allgemein
					Powered by phpBB © 2001 - 2006, phpBB Group
				



