Hilfe bei Pure Basic"Achtung Kurve"

Anfängerfragen zum Programmieren mit PureBasic.
Ulrich
Beiträge: 6
Registriert: 05.03.2009 10:29
Kontaktdaten:

Hilfe bei Pure Basic"Achtung Kurve"

Beitrag von Ulrich »

Hey @ alle

Wir sind eine gruppe von schülern und wollen "Achtung Kurve" auf Pure Basic Programmieren....
wir wissen jedoch nicht wie man einen punkt frei bewegen kann bzw. es dann auch noch schaffen kann das dieser punkt eine linie hintersich herzieht .....
bis jetzt haben wir eigentlich noch nichts geschafft :mrgreen: :freak:
aber wir haben schon viel versucht... kann uns jemand helfen??
wir danken schoneinmal allen die uns helfen.

ihr könnt uns auch in icq anschreiben : 352086798

Lg

Milan, Sascha, Damjan und Adrian
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

Beitrag von sibru »

Hallo,
Text programmieren ? Ich denke mal, ihr wollt, den Text "Achtung Kurve"
grafisch darstellen...
Nun, natürlich geht sowas auch mit PureBasic... jedoch mit erheblichem
zeitlichem Aufwand, wenn man gerade erst einsteigt.
Ich würde ich Euch für diese Anwendung die Programmiersprache "Logo"
empfehlen, bei der mit einfachen Befehlen ein Schreibstift bewegt werden
kann. Weitere Info´s hierzu:
http://www.informatik.uni-hamburg.de/~s ... stieg.html

Viel Erfolg...

SiBru
Bild Bild
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

ich möchte euch nicht alles vorkauen, aber hier ist mal eine kleine starthilfe.

Falls ihr Fragen habt, wie man daraus jetzt weiter das Spiel bauen könnte, könnt ihr die gerne stellen, aber versucht bitte erst einmal den Code selbst zu verstehen und erweitern. Seid ja immerhin zum denken in der Schule ;)

Code: Alles auswählen

EnableExplicit

If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
  MessageRequester("Error", "Can't open DirectX 7 or later", 0)
  End
EndIf

Structure coor
  
  x.l
  y.l
  
EndStructure

Dim path.coor(100)
Define sprite_player.l
Define a.l

If OpenScreen(640, 480, 16, "Sprite")
  
  sprite_player = CreateSprite(#PB_Any,16,16)
  StartDrawing(SpriteOutput(sprite_player))
  Circle(8,8,8,$00FF00)
  StopDrawing()
  
  Repeat
    
    ClearScreen(0)
    
    ExamineKeyboard()
    ExamineMouse()
    
    For a=0 To 99
      path(a)\x = path(a+1)\x
      path(a)\y = path(a+1)\y
    Next
    
    path(100)\x = MouseX()
    path(100)\y = MouseY()
    
    
    For a=0 To 99
      StartDrawing(ScreenOutput())
      LineXY(path(a)\x,path(a)\y,path(a+1)\x,path(a+1)\y,$FF0000)
      StopDrawing()
    Next
    
    DisplayTransparentSprite(sprite_player,MouseX()-8,MouseY()-8)
    
    FlipBuffers()
    
  Until KeyboardPushed(#PB_Key_Escape)
  
EndIf
pb 4.51
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Willkommen im Board, Jungs!

... bei solchen Fragen ist es hilfreich, Background zu verlinken wovon ihr redet,
dann kann es nicht zu solchen Mißverständnissen kommen wie bei Sibru.


das Beispiel von gnasen sollte euch schon ein Stück weit auf die Sprünge helfen... ;)

@All

es handelt sich um dieses Game:
http://de.wikipedia.org/wiki/Achtung,_die_Kurve%21

eine Art "Snake" bzw. "Tron", nur eben mit Kurven, nicht nur Ecken.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Ulrich
Beiträge: 6
Registriert: 05.03.2009 10:29
Kontaktdaten:

Beitrag von Ulrich »

Ersteinmal danke für die freundliche aufnahme und die direkte schnelle hilfe :)
@ sibru wir wollen das spiel programmieren aber trozdem danke das du uns helfen wolltest :):)

@gnasen danke ob es uns weiter bringt weis ich noch nicht ich schätze aber schon nur wäre es wichtig das die linie nicht verschwindet :)^^
danke auch für deinen beitrag ... da wir nur eine doppelstunde zusammen haben werden wir uns so treffen und mal das ganze durchkauen ^^:)

@Kaeru Gaman danke für die aufnahme.... okay... wir dachten das es ein relativ bekanntes spiel ist :freak:

also Das ist mit achtung kurve oder auch achtung kruve gemeint :)
wir wollen das spiel nachschreiben da wir ein eigenes spiel erstellen sollen das das prinzip geklaut wurde ist zumindest unserem lehrer egal^^
da wir uns nicht sehr gut damit auskennen aber es auch lernen wollten haben wir uns ans forum gewendet.....
wenn hr noch ideen tipps oder vorschläge habt wie wir bestimmte sachen hinkriegen sind wir dafür natürlich immer offen....

nocheinmal danke an alle die bis jetzt geantwortet haben und
schoneinmal danke im voraus an alle die noch antworten werden :mrgreen:

Lg wünschen euch

wieder
Sascha, Damjan, Milan und Adrian
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> da wir ein eigenes spiel erstellen sollen das das prinzip geklaut wurde ist zumindest unserem lehrer egal

ein neues Spielprinzip wäre ja auch kaum ne Schulaufgabe, damit würde man zigtausende verdienen,
gibt nämlich kaum was was es nicht gibt... :lol:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Ulrich
Beiträge: 6
Registriert: 05.03.2009 10:29
Kontaktdaten:

Beitrag von Ulrich »

stimmt schon xDD
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ein paar tips.... (während der werbepausen des spät-spät-movies.. xD )


um spuren "beliebig" lang zu speichern, könnt ihr listen verwenden.


gleichmäßiges timing ist wichtig, SetFrameRate() genügt völlig, pfeif drauf dass die CPU auf 100% läuft.


um zu steuren, speichert für einen punkt nicht nur die koordinaten (wie im beispiel von gnasen),
sondern auch die richtung. die geschwindigkeit muss festliegen.
die richtung soll dann ja wahrscheinlich mit zwei tasten gelenkt werden.

aus geschwindigkeit und richtung könnt ihr den nächsten punkt berechnen, über Sin() und Cos().
die Funktionen von PB brauchen als Argument keine Grad, sondern Bogenmaß, also muss man das erst umrechnen.
dazu kann ich euch gern mehr erklären.

wenn ihr dann den punkt für den nächsten schritt erst prüft, ob er schon gesetzt ist, bevor ihr ihn plottet,
habt ihr auch schon die kollision mit anderen spuren...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

Beitrag von Regenduft »

:o KLASSE! GENIAL! *QUIEK!* >:) :allright:

Ich wollte damals zu Schulzeiten auch mit 'nem Kumpel einen Achtung Kurve-Klon programmieren!
Das war damals auf dem Amiga mit GFA-BASIC aber garnicht so einfach und da wir statt Internet noch BTX hatten und das so sau teuer war, waren wir auch in keinem Forum (wir wussten auch garnicht was das ist). Wir haben uns dann mit Text-Adventures begnügt.
Lehrer konnten uns damals auch nicht helfen, da keiner programmieren konnte. Wir waren sowie so der erste Jahrgang mit ITG als Fach. Den Q-BASIC "Grundkurs" mußten wir als Schüler selbst geben.

Ach, *seufz* süße Nostalgie! <)

:praise: Ihr müßt (bittebittebitte) auf jedenfall eure Fortschritte hier posten! Vielleicht auch ein paar Screenshots wenn es mal was zu sehen gibt! Ich wünsche euch viel Erfolg und Durchhaltevermögen!

(Sorry wenn das ein wenig Off-Topic war, aber das musste sein) :oops:
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

Ich würde eventuell nochmals anders vorgehen. Statt die Punkte jedes einzelnen in einer eigenen Liste/Array mitzuschreiben, würde ich ein Array in der größe des Screens (zB 640x480) erstellen und für jeden Punkt notieren ob er besucht wurde, und wenn ja von wem.
Zum zeichnen müsste man nur noch Punkt für Punkt nachzeichnen (am besten per direkten Speicherzugiff, ich glaube Plot() war sehr langsam) und nur noch die Spieler Positionen drüber darstellen.
pb 4.51
Antworten