|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 04.02.2005, 18:55 Titel: |
|
|
GreveN hat Folgendes geschrieben: | Ist doch afaik nix weiter als eine abstrakte Klasse... | Es ist keine Klasse, sondern eine Struktur mit Funktionsdeklarationen! _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 04.02.2005, 19:05 Titel: |
|
|
zwischen interface und class gibt es auch unterschiede Das Schlüsselwort interface ist ausschließlich für COM, class ist was anderes _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 05.02.2005, 22:43 Titel: |
|
|
CPP: | /////////////////////
//
// TEST
//
/////////////////////
/* keywords */
__abstract __alignof __asm __assume
__based __box __cdecl __declspec
__delegate __event __except __fastcall
__finally __forceinline __gc __hook
__identifier __if_exists __if_not_exists __inline
__int8 __int16 __int32 __int64
__interface __leave __m64 __m128
__m128d __m128i __multiple_inheritance __nogc
__noop __pin __property __raise
__sealed __single_inheritance __stdcall __super
__try_cast __try __except __finally __unhook __uuidof
__value __virtual_inheritance bool
break case catch char
class const const_cast continue
default delete do double dynamic_cast
else enum explicit extern
false float for friend
goto if inline int
long mutable namespace
new operator private
protected public register reinterpret_cast
return short signed
sizeof static static_cast struct
switch template this
throw true try typedef
typeid typename union unsigned
using __uuidof virtual void
volatile __wchar_t wchar_t while
|
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 06.02.2005, 12:52 Titel: |
|
|
CPP: | std::cout<<"Juhuuu..."; |
Glückwunsch, dass es jetzt endlich funzt _________________ 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 |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 14.02.2005, 14:28 Titel: |
|
|
Der Code sieht jetzt so aus:
PHP: | an style="color: #000000"><?php // START CPP Syntax Highlighter MOD
/**
* CPP MOD
* Original code/function by phpBB Group
* Modified by JW Frazier / Fubonis < php_fubonis@yahoo.com > for PHP highlighting
* Modified again by KI / Martin Mädler < martin@shadoware.de > for nice C++ highlighting
*/
function bbencode_second_pass_cpp($text, $uid, $bbcode_tpl)
{
// split the post up and grab the code blocks
$code_start_html = $bbcode_tpl['cpp_open'];
$code_end_html = $bbcode_tpl['cpp_close'];
// build the md5-hash of an escaped backslash \\
// we need this for string highlighting later
$escaped_backslash_md5 = md5("\\\\\\\\");
$matches = array();
$match_count = preg_match_all("#\[cpp:1:$uid\](.*?)\[/cpp:1:$uid\]#si", $text, $matches);
// this array holds all the C++ keywords, which will be highlighted in blue
$cppcodearray = array
(
"#define", "defined", "#else", "#elseif", "#endif", "#if", "#ifdef",
"#ifndef", "#include", "#pragma", "#undef",
"const_cast", "dynamic_cast", "reinterpret_cast", "static_cast",
"_asm", "__asm", "__attribute", "__catch", "__declspec", "__fastcall",
"__finally", "__forceinline", "_inline", "__inline", "__interface",
"__int8", "__int16", "__int32", "__int64", "__property", "__published",
"__stdcall", "__try",
"asm", "bool", "break", "case", "catch", "char", "class", "const",
"continue", "default", "defined", "delete", "dllexport", "dllimport",
"do", "double", "else", "enum", "extern", "false", "float", "for", "friend",
"if", "inline", "int", "interface", "long", "mutable", "namespace", "new",
"operator", "private", "protected", "public", "register", "return",
"short", "signed", "static", "switch", "template", "this", "true",
"typedef", "typename", "try", "union", "unsigned", "using", "void",
"volatile", "wchar_t", "while"
);
for ($i = 0; $i < $match_count; $i++)
{
$before_replace = $matches[1][$i];
$after_replace = $matches[1][$i];
$str_to_match = "[cpp:1:$uid]" . $before_replace . "[/cpp:1:$uid]";
// First of all we need to replace all multiline comments with its approriate md5-hash
// This prevents highlighting keywords inside of a comment
// Later the hashes are again replaced by its corresponing multiline comment
$comment_multi_count = 0;
do
{
// preg_match, with a specific multiline comment regex
$result = preg_match("/(\/\*.*?\*\/)/s", $after_replace, $comment_multi);
if($result == 0)
break;// if no more comments are found, leave the loop
$comment_multi_arr[$comment_multi_count] = $comment_multi[1];// this array holds the comments
$comment_multi_md5[$comment_multi_count] = md5($comment_multi[1]);// this one holds the corresponding md5-hash
$after_replace = substr_replace($after_replace, $comment_multi_md5[$comment_multi_count], strpos($after_replace, $comment_multi_arr[$comment_multi_count]), strlen($comment_multi_arr[$comment_multi_count]));
$comment_multi_count += 1;
}
while(true);
// Here we need to replace all singleline comments with its approriate md5-hash
// by using the same method as seen before
$comment_single_count = 0;
do
{
// preg_match, this time with a specific singleline comment regex
$result = preg_match("/(\/\/.*)/", $after_replace, $comment_single);
if($result == 0)
break;// if no more accordances are found, leave the loop
$comment_single_arr[$comment_single_count] = $comment_single[0];
$comment_single_md5[$comment_single_count] = md5($comment_single[0]);
$after_replace = substr_replace($after_replace, $comment_single_md5[$comment_single_count], strpos($after_replace, $comment_single_arr[$comment_single_count]), strlen($comment_single_arr[$comment_single_count]));
$comment_single_count += 1;
}
while(true);
// In the next part we are going to find strings within the code
// strings are characterized by one double quotes (") on each end
// replace all escaped backslashes with its appropriate md5-hash
// otherwise an escaped backslash at the end of a string would
// be interpreted as an escaped double quote
// That would result in an oversized string
// Example 1:(we want to prevent such bugs)
// <span style='color: #00B0B0'>"We don't want this \\" here is some code"</span>beginning of a new string...
// Example 2:(that's the way it has to be)
// <span style='color: #00B0B0'>"We want this\\"</span><span style='color: #00B0B0'>"beginning of a new string...
$after_replace = preg_replace("/(\\\\\\\\)/",$escaped_backslash_md5,$after_replace);
// now we find all strings
// the look behind feature (?<!\\\\)\") in our regex enables us to find strings with
// escaped double quotes \"
// otherwise the string would close at the second double quote from the beginning
$string_cnt = preg_match_all("/(\".*?(?<!\\\\)\")/s", $after_replace, $strings, PREG_SET_ORDER);
if ($string_cnt > 0)
{
foreach ($strings as $string)
{
$after_replace = str_replace($string[0], md5($string[0]), $after_replace);
}
}
// lets come to the highlighting
// this highlights everything red which is between square brackets
$after_replace = preg_replace("/(\[)([^\]]*)(\])/", "\\1<span style='color: #FF0000'>\\2</span>\\3", $after_replace);
// merge the keyword-array to a big regex
$keyword_regex = "/(?<![A-Za-z0-9_])(" . implode("|", $cppcodearray) . ")(?![A-Za-z0-9_])/";
// highlight the keywords
$after_replace = preg_replace($keyword_regex, "<span style='color: #0000FF'>\\0</span>", $after_replace);
// its time to replace all hashes with its corresponing character strings
// perform multiline comment highlighting
for($count = 0; $count < $comment_multi_count; $count++)
{
$after_replace = str_replace($comment_multi_md5[$count], "<span style='color: #008000'>" . $comment_multi_arr[$count] . "</span>", $after_replace);
}
// perform singleline comment highlighting
for($count = 0; $count < $comment_single_count; $count++)
{
$after_replace = str_replace($comment_single_md5[$count], "<span style='color: #008000'>" . $comment_single_arr[$count] . "</span>", $after_replace);
}
// perform string highlighting
if ($string_cnt > 0)
{
foreach ($strings as $string)
{
$after_replace = str_replace(md5($string[0]), "<span style='color: #00B0B0'>" . $string[0] . "</span>", $after_replace);
}
}
// replace all escaped backslash hashes with escaped backslashes
$after_replace = preg_replace("/(" . $escaped_backslash_md5 . ")/","\\\\\\\\",$after_replace);
// replace 2 spaces with " " so non-tabbed code indents without making huge long lines.
$after_replace = str_replace(" ", " ", $after_replace);
// now replace 2 spaces with " " to catch odd #s of spaces.
$after_replace = str_replace(" ", " ", $after_replace);
// replace tabs with " " so tabbed code indents sorta right without making huge long lines.
$after_replace = str_replace("\t", " ", $after_replace);
// now replace space occurring at the beginning of a line
$after_replace = preg_replace("/^ {1}/m", " ", $after_replace);
// make first \r\n to vanish if it exists
$after_replace = preg_replace("/^(\r\n)*/", "", $after_replace);
// piece the post back together
$replacement = $code_start_html;
$replacement .= $after_replace;
$replacement .= $code_end_html;
$text = str_replace($str_to_match, $replacement, $text);
}
$text = str_replace("[cpp:$uid]", $code_start_html, $text);
$text = str_replace("[/cpp:$uid]", $code_end_html, $text);
return $text;
} |
|
|
Nach oben |
|
|
Kronos Senior JLI'ler
Anmeldedatum: 19.03.2004 Beiträge: 290
Medaillen: Keine
|
Verfasst am: 14.02.2005, 14:39 Titel: |
|
|
Du hast die Präprozessoranweisung #error vergessen!
Edit: und naked? _________________
David hat Folgendes geschrieben: | Solang meine Beiträge konstruktiver sind als deiner bin ich zufrieden... |
Kein Kommentar notwendig. :rolleyes: |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 20.02.2005, 01:06 Titel: |
|
|
FH hat Folgendes geschrieben: | FH
<edit>
Was ist dann das komisches? Unterstrichen in cpp ergibt das:
CPP: | [u:31663a4e05] [/u:31663a4e05] [b:31663a4e05] [/b:31663a4e05] [i:31663a4e05] [/i:31663a4e05][php]
Kann mir mal jemand erklären, was das soll?
|
</edit> |
Das was du da siehst ist der unique identifier, der bei jedem Beitrag neu nach dem Zufallsprinzip generiert wird. Bei den PHP-Tags tritt der gleiche Fehler auf.
Man müsste mal genauer unter die Lupe nehmen, warum der UID bei den Code-Tags nicht zum Vorschein kommt. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.03.2005, 18:14 Titel: |
|
|
Hier nen Bug:
CPP: | if(foo==8)
{
//...
} |
_________________ "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 |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 21.03.2005, 18:31 Titel: |
|
|
cool |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 21.06.2005, 01:33 Titel: |
|
|
FallenAngel84 hat Folgendes geschrieben: | Hier nen Bug:
CPP: | if(foo==8)
{
//...
} |
|
Dieser Bug wurde nach langer Zeit nun auch gefixt. [nachtrag: ne doch nicht wirklich.. siehe p.s.]
Es sollten nun keine Smileys innerhalb von CPP-Tags möglich sein.
Außerdem habe ich ein neues Feature eingebaut. Der Code zwischen >>> und <<< wird ab jetzt mit einem hellen Gelb untermalt. So kann man besondere Codeabschnitte besser hervorheben.
CPP: | void CPlayground::SnakeTeleport(CSnake &rSnake)
{
// Alle Teleporter durchlaufen
for(UINT c = 0; c < m_uNumElements[elementTeleporter]; c++)
{
CSnakeVector *pHead = rSnake.GetSnakeParts();
if(m_pElements[elementTeleporter][c] == *pHead)
{
// Wenn es mehr als einen Teleporter gibt, dann einen anderen auswählen
if(m_uNumElements[elementTeleporter] > 1)
{
// Teleporter wählen
UINT uNew;
do
{
uNew = static_cast<UINT>(rand()) % m_uNumElements[elementTeleporter];
}
while(uNew == c);
// Teleportieren
*pHead = m_pElements[elementTeleporter][uNew];
// Verlassen
return;
}
}
}
}
|
Viel Spaß damit. O.o. hoffentlich gibt es keine neuen Bugs.
p.s. so wie es jetzt ist, ist es teilweise noch etwas buggy... (was die smiley-unterdrückung angeht) awerd ich mir noch was besseres zu überlegen. |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 21.06.2005, 07:39 Titel: |
|
|
das ist eine wirklich gute idee KI! klappt gut |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 21.06.2005, 07:42 Titel: |
|
|
jo, gut gemacht |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 21.06.2005, 10:52 Titel: |
|
|
Jetzt funktioniert es einigermaßen. Aber es gibt noch Probleme mit dem hier:
CPP: | :D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: ;) ;-) :wink: :!: :?: :idea: :arrow: :| :mrgreen: :rambo: :thumb: :hand: :doh: :pray: :think: :clap:
|
Code: |
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: ;) ;-) :wink: :!: :?: :idea: :arrow: :| :mrgreen: :rambo: :thumb: :hand: :doh: :pray: :think: :clap:
|
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 21.06.2005, 13:51 Titel: |
|
|
CPP: | #include <iostream>
int main(void)
{
std::cout<<"kewl feature!!\n...and nice idea ;)";
return 0;
} |
<edit>
...aber was ist das für ein Smiley innerhalb der CPP-Tags?
</edit> _________________ 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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.06.2005, 13:59 Titel: |
|
|
KI schrieb doch das es Probleme mit dem hier gibt: _________________ "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 |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|