Instanzen (autos)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Keine64MB

Betreff: Instanzen (autos)

BeitragSa, Jul 09, 2011 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Einige werden vielleicht mein Pacman Projekt bemerkt haben, wo ich einige Probleme hatte.
Da dieses immer noch nicht ganz funktioniert, habe ich uns eine Ruhepause gegönnt, und habe ein kleines
Soloprojekt gestartet, um Angeberei gegenüber Lehrern zu betreiben (viele, die nicht in den Diff-Kurs Informatik an unserer Schule gekommen sind, kennen das).. Laughing Dort rast man auf der falschen Spur und muss Autos ausweichen. Leider habe ich 2 Probleme:
Arrow Autos blinken bei wenigen Itrationen der carnum Schleife
Arrow Das Bild in der letzten Zeile des Blocks derselben Schleife wird nicht gefunden, obwohl es existiert.
Ich gebe hier den gesamten Code an, da dies mein erster Versuch ist, Types zu benutzen, weswegen der Code etwas unübersichtlich wirkt:Code: [AUSKLAPPEN]
Graphics 995, 800, 32, 2
SetBuffer BackBuffer()
AppTitle "Ghost Rider"
font = LoadFont("Arial", 30, 1)
SetFont(font)
SeedRnd MilliSecs()
;Global score= 0
;Global lives = 3
;Global energy = 100
;Global p_y_speed = 50
;Global p_x_speed = 10
;Global player_car = LoadImage("gfx\Playercar.bmp")
Global background = LoadImage("gfx\Background_1.bmp")
Global timer = CreateTimer(45)
Global carimage_1 = LoadImage("gfx\Gegner_a_rot.bmp")
Global carimage_2 = LoadImage("gfx\Gegner_a_metallic.bmp")
;Global p_pos_x = 100
;Global p_pos_y = 600
Type player
  Field lives
  Field energy
  Field y_speed
  Field x_speed
  Field y_pos
  Field x_pos
  Field image
End Type
Type car
  Field cartype
  Field lives
  Field image
  Field spur
  Field x_pos
  Field y_pos
  Field y_speed
  Field x_speed
End Type
Global player1.player = New player
player1\lives = 3
player1\energy = 100
player1\y_speed = 50
player1\x_speed = 10
player1\x_pos = 100
player1\y_pos = 600
player1\image = LoadImage("gfx\Playercarb.bmp")
For carnum = 1 To 20
  car1.car = New car
  car1\cartype = Rnd(0,2)
  ;If car1\cartype = 0 Then car1\image = carimage_1
  ;If car1\cartype = 1 Then car1\image = carimage_2
  car1\image = carimage_1
  car1\spur = Rnd(0,3)
  If car1\spur = 0 Then car1\x_pos = 547
  If car1\spur = 1 Then car1\x_pos = 692
  If car1\spur = 2 Then car1\x_pos = 846
  car1\y_pos = 100
  DrawImage(car1\image, car1\x_pos, car1\y_pos)
Next
Function animieren()
  If KeyDown(203) Then player1\x_pos = player1\x_pos - player1\x_speed
  If KeyDown(205) Then player1\x_pos = player1\x_pos + player1\x_speed
  DrawImage(player1\image, player1\x_pos, player1\y_pos)
  If player1\x_pos = 0 Then
    player1\x_speed = 0
    If KeyDown(205) Then player1\x_speed = 10
  EndIf
  If player1\x_pos = 940 Then
    player1\x_speed = 0
    If KeyDown(203) Then player1\x_speed = 10
  EndIf
  WaitTimer(timer)
End Function
Repeat
Cls
  DrawImage(background, 0, 0)
  For carnum = 1 To 70
    car1.car = New car
    car1\cartype = Rnd(0,2)
    If car1\cartype = 0 Then ;car1\image = LoadImage("gfx\Gegner_a_metallic.bmp")
      car1\image = carimage_1
    EndIf
    If car1\cartype = 1 Then ;car1\image = LoadImage("gfx\Gegner_a_rot.bmp")
      car1\image = carimage_2
    EndIf
    car1\spur = Rnd(0,3)
    If car1\spur = 0 Then car1\x_pos = 547
    If car1\spur = 1 Then car1\x_pos = 692
    If car1\spur = 2 Then car1\x_pos = 846
    car1\y_pos = 100
    DrawImage(car1\image, car1\x_pos, car1\y_pos)
  Next

  animieren()
  Text(0, 760, "Score = "+score)
  ;WaitTimer(timer)
  Flip 
Until KeyHit(1) 
End

Ich hoffe auf Hilfe von Experten, die da durchblicken, was ich als Noob und mit 64MB
grafikkartenleistung definitiv nicht tue. Embarassed
(k)eine Signatur

Xeres

Moderator

BeitragSa, Jul 09, 2011 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Aua. Mit New erstellst du 70 neue Autos per Schleifendurchlauf und killst damit garantiert die Performance. Benutze eine For...Each Konstruktion und wälze vielleicht nochmal ein Type-Tutorial.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group